在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排序
按姓名排序取出前十條數據it
附:取100-150條數據的方法io
1. 最佳選擇:利用分析函數select
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;top
2. 使用rownum 虛列tab
select tname,tabtype from (
select tname,tabtype,rownum rn from tab where rownum <= 150
) where rn >= 100;