1. 程式人生 > >Oracle查詢前幾條數據的方法

Oracle查詢前幾條數據的方法

str 文章 select () 引用 hive 排序 com 指正

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

引用原文:http://www.cnblogs.com/yangxia-test/archive/2012/09/20/2695617.html

寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!

如果有什麽問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!

Oracle查詢前幾條數據的方法