Oracle查询前几条数据的方法举例

发布时间:2020-08-21编辑:脚本学堂
在Oracle中实现这样的查询:select top N。由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum 的组合来实现select top n的查询。

在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;