ORA-01446: 无法使用distinct, group by 等子句从试图中选择rowid或采样

今天用

select * from (select p.*,rownum nu from (select t.* ,t.rowid  from product t order by t.productid) p where rownum<=4 ) y  where nu>1 

这个语句来实现分页查询

出现这个错误ORA-01446: 无法使用distinct, group by 等子句从试图中选择rowid或采样_第1张图片

然后百度了下,发现是

语句里主查询中用了 * 号,而 * 号包含了rowid,而主查询的数据源是子查询,主查询并不存在rowid,因此出现了ORA-01446错误。
解决方法:在子查询中rowid取别名。例:select  rownum,rowid id,... ...
嗯,一试果然是这样!!
select * from (select p.*,rownum nu from (select t.* ,t.rowid h from product t order by t.productid) p where rownum<=4 ) y  where nu>1 
改成这样就没问题了.
二、问题是怎么用PLSQL Developer打开表格后发现,不知道怎么删除表格是的数据
原来是这样的,打开相应的表,然后鼠标右键,点击编辑会出现
点那个的样式的就是删除了。




你可能感兴趣的:(sql)