select * from (select a1.*,rownum rn from (select * from emp )a1 where rownum<=10) where rn>=6;
--是不是一定得起别名?select * from (select a1.*,rownum rn from (select * from emp )a1 where rownum<=10) where rownum>=6;
--这样不行吗?select * from (select a1.*,rownum from (select * from emp )a1 where rownum<=10) where rownum>=6;
--这样也不行?请教了!!

解决方案 »

  1.   

    1  是的,因为你后面where子句里有rn>=6,如果不起,where里条件应为rownum>=6,这样是查不出数据的。因为rownum是伪列,必须从1开始。可以rownum<=6,但不可以直接从6开始。仔细看看rownum的用法
      

  2.   

    参考一下本论坛达人tianlesoftware的blog,很详细
    http://blog.csdn.net/tianlesoftware/archive/2009/12/09/4970292.aspx
      

  3.   


    呵呵~谢了~我刚刚学开始,只是看了点视频,有没什么适合Oracle新手的书推荐?
      

  4.   

    不懂怎么说,只是想找本比较浅点的书当做参考,oracle的concepts文档好像有点太复杂了吧~