如题
select t.*,rownum r from test t where r>50 and r<=100;
网上有这么说的,但是我执行是报错
select * from test where rownum < 10;
是查询前十条

解决方案 »

  1.   

    --再嵌套一层,因为rownum是伪劣,只能从1开始
    select * from(select t.*,rownum r from test t) where r>50 and r<=100;
      

  2.   

    select t.*,rownum r from test t where rownum>50 and rownum<=100;
      

  3.   

    楼上的这样肯定也是没结果的!select t.*,rownum r from test t where rownum>50 and rownum<=100;
      

  4.   

    select * from(select t.*,rownum r from test t order by id ) where r>50 and r<=100;
      

  5.   

    rownum需要加上order by 否则顺序不准确
      

  6.   

    --当前层的rownum 是伪列 只能是 rownum<=n 因为rownum的初值是1 1>50  为false 
    select *
    from (select t.*,rownum r from test t) a where r>50 and r<=100;
      

  7.   

    select * from (select rownum no,id,name from student where rownum<=3 ) where no >=2;