select ename from (select * rownum n from (select * from emp order by ename) where rownum<20)where n>10;
和这句select ename from (select * rownum n from (select * from emp order by ename) where rownum<20)where rownum;
还有这句select ename from (select * from (select * from emp order by ename) where rownum<20)where rownum>10;这三句是一个意思吧 rownum在select不用非要写出吧???
和这句select ename from (select * rownum n from (select * from emp order by ename) where rownum<20)where rownum;
还有这句select ename from (select * from (select * from emp order by ename) where rownum<20)where rownum>10;这三句是一个意思吧 rownum在select不用非要写出吧???
--你的语句应有问题吧,执行就会有错
select ename from (select ename,rownum n from (select * from emp order by ename) where rownum<20) where n>10;--取出按ename排序后的第11到19条数据select ename from (select ename,rownum n from (select * from emp order by ename) where rownum<20)where rownum>10;--取不出,此句结果和select ename from emp where rownum>10一样,因rownum是从第1个开始查找,检测第1个是否大于10,不大于,查第二个,此时第二条的
rownum还是1,因此直接结束都没>10的记录select ename from (select * from (select * from emp order by ename) where rownum<20)where rownum>10;--和第二个一样,没结果
主要错误是
1.select * ROWNUM n FROM 有错,不用rownum直接select * FROM 就好,若要用则select ROWNUM rn,t.* FROM TABLE t
2.ROWNUM>10要报错,这个最好了解一下rownum的概念..
唉。
你没在PL/SQL里执行?感觉楼主应该是对rownum不理解吧 多多学习一下Oracle基础