1. 程式人生 > 資料庫 >oracle 使用rownum的三種分頁方式

oracle 使用rownum的三種分頁方式

rownum是Oracle資料庫中的一個特有關鍵字,返回的是一個數字代表記錄的行號。

基礎知識:rownum只能做<或者<=的條件查詢,如果要rownum進行51到100這樣的範圍判斷,需要先查詢出每一行的rownum,再用那個序號做判斷

獲取51到100的資料

三種分頁的寫法:

1.使用minus,原理就是查詢出前100行的資料 減去 查詢出前50行的資料

select * from DATA_TABLE_SQL where rownum<=100 
minus 
select * from DATAT_ABLE_SQL where rownum<=50

2.查詢出所有資料的rownum,然後再選擇50到100的資料(不推薦)

select * from (select t.*,rownum num from DATA_TABLE_SQL t) 
where num<=100 and num>50

3.限定範圍100條資料,並查詢出這100條的rownum,然後再選擇50到100的資料

select * from
(select t.*,rownum num from DATA_TABLE_SQL t where rownum<=100 )
where num>50

下面給大家拓展兩個分頁查詢語句:

1:單表查詢

SELECT * FROM (SELECT t.*,ROWNUM r FROM TABLE t WHERE ROWNUM <= pageNumber*pageSize) WHERE r >(pageNumber)*pageSize

2:兩張表聯查

SELECT * FROM (SELECT ROWNUM RN,XX.* FROM (SELECT 表名.欄位名,表名.欄位名,表名.欄位名... FROM TABLE1 t1,TABLE2  t2 WHERE t1.欄位=t2.欄位) XX WHERE ROWNUM<=pageSize*pageNumber) WHERE RN >(pageNumber-1)*pageSize

總結

以上所述是小編給大家介紹的oracle 使用rownum的三種分頁方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!

如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!