解决方案 »

  1.   

    内层的rownum要起个别名
    否则外层的取的还是自身的伪列,此时没有rownum=1的记录,自然不会有2 3 4 5....
      

  2.   

    rownum是针对本层查询的一个伪列,排序用的。只能从1开始,不能从2或者以上开始。
      

  3.   

     where rownum > 5 AND rownum <= 10 这里的 rownum 是外层的 rownum ,并非子查询的。子查询的,来个别名。
      

  4.   

    你不制定具体的表名,ROWNUM是子查询的伪表做处理的
    第一句的查询条件相当于 rownum <= 5
    第二句的查询中的ROWNUM>5,数据库是无法计算出来的,针对当前表的伪列ROWNUM,数据库
    只能计算出<=具体数字 或等价的 >0 and <= 
    若是想实现第二中情况,可以在子查询中具体指定ROWNUM伪列的别名
      

  5.   

    --
    select * from (select rownum num,t.* from MBAA01_OW_OWNER  t WHERE 1=1 ) 
     where rownum > 0 AND rownum <= 5--指定伪列别名
    select * from (select rownum num,t.* from MBAA01_OW_OWNER  t WHERE 1=1 ) 
     where num > 5 AND num <= 10