select * from(select rank() over (order by OrderField desc) row_id,a.* from tableName a  order by a.OrderFiled desc) where row_id between 10 and 20以上能实现按照 任意列 的排序的某段结果。不能用rownum ,它只能得到原始记录的排序。 其他的就不行了。

解决方案 »

  1.   

    取n<row<m的纪录
    select * from (select rownum id,tb.* from tb where rownum<m) where id>n;
      

  2.   

    to : bzszp(SongZip) 
      你的方法不能实现指定列的排序吧?
      

  3.   

    select * from (select rownum id, t.* from table_name t)
    where id between 10 and 20
      

  4.   

    set pagesize=10
    set pause on
      

  5.   

    set linesize=10
    set pause on
      

  6.   

    to pumawang:
    你的方法如果排序字段有相同值时,row_id会重复
      

  7.   

    airlulu : 有这个情况时,再指定一个 排序字段 就可以了。
    比如 : order by orderfield, rownum 
    这样重复的时候,就不会重复了。
      

  8.   

    to  gaobh() :
    linesize 是设行宽的!