select ... from ... where ... and rownum >= ? and rownum < ?+50

解决方案 »

  1.   

    可以用取部分记录的方法来处理:
    得到第M条到第N条记录的方法:
    select * from (select rownum rm,a.* from 表名 a where rownum<=N) where rm>=M每次输入M,N的值就可以了.
      

  2.   

    oracle中的rownum是不能用 >M 的.
      

  3.   

    select * from tablename where rownum<? and rownum>?
      

  4.   

    rownum是什么?谁能解释下用法?
      

  5.   

    使用分析函数控制返回的结果集select col1,col2,...
    from (
      select col1,col2,col3,....,row_number() over (order by col desc/asc) rn
    )
    where rn <= 50;
      

  6.   

    dinya2003(OK) ( ) :
      
    oracle中的rownum是不能用 >M 的.严重同意
      
     
      

  7.   

    分两种情况:
    1.如果sql语句中含有order by 或group by 语句,可用以下格式:
    select col_name from table_name where rownum<100 minus select col_name  from table_name where rownum<50  (取第50--100行的记录),因此语句存在着两次查询,效率较差.
    2.如果sql语句中不含有order by 或group by 语句,可用以下格式:
    select * from (select rownum id,col_name from table_name ) where id>50 and id<100
      

  8.   

    rownum不能用> , 请错误的赶紧纠正.select * from (select rownum rn,a.* from tablename a where rownum<50) where rn>20
      

  9.   

    直接用rowid
    每次取50条的话可以把本次的ROWID存在变量中,rowid开始设置为'0'
    在移动到最后一条记录取得rowid
    可以下次取数据 
    select * from ab01 where rowid>'AAAHzpAAJAAAAyPAAP' and rownum<50