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不用非要写出吧???

解决方案 »

  1.   


    --你的语句应有问题吧,执行就会有错
    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;--和第二个一样,没结果