我想从select+where语句中获得符合条件的100条记录的第30-50条记录,这个功能在做页面翻页中经常使用,以前我在sqlserver里可以用两个select语句相嵌查询获得,记得oracle里可以使用limit来查询,是否属实,请大侠解答小弟问题。万分感谢

解决方案 »

  1.   

    晕!!MySql采用Limit
    Oracle中用RowNum来实现
      

  2.   

    用rownum 可以實現嗎?沒試過..不過limit在oracle 中也可用呀。只是比較適合在數組中。。
      

  3.   

    最简洁的写法;
     select col1,col2... from (
       select rownum as r col1,col2... from your_table where rownum<=100 and yourcondition)
    where r between 30 and 50;对于大数据量来说,子查询返回rowid效率更高:
    select col1,col2... from your_table where rowid in (
       select rid from(
            select rowid as rid ,rownum as r from your_table 
            where rownum<=100 and yourcontidion)
       where r between 30 and 50)
    ;
      

  4.   

    select * from table_name where row_num<=50
    minus
    select * from table_name where row_num <30