分享

Oracle查询前几条数据的方法

 肖肖宝宝 2016-08-25

      在Oracle中实现select top N:
      由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum
      的组合来实现select top n的查询。
      简单地说,实现方法如下所示:
      select 列名1 ...列名n from
      (
      select 列名1 ...列名n
      from 表名 order by 列名1
      )
      where rownum <=N(抽出记录数)
      order by rownum asc

      如:select id,name from (select id,name from student order by name) where rownum<=10 order by rownum asc

      按姓名排序取出前十条数据

      附:取100-150条数据的方法

      1. 最佳选择:利用分析函数

      row_number() over ( partition by col1 order by col2 )                               

      比如想取出100-150条记录,按照tname排序
      select tname,tabtype from (                               

      select tname,tabtype,row_number() over ( order by tname ) rn from tab                

      ) where rn between 100 and 150;

      2. 使用rownum 虚列

      select tname,tabtype from (                    

      select tname,tabtype,rownum rn from tab where rownum <= 150                  

      ) where rn >= 100;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多