溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle如何實現(xiàn)分頁查詢

發(fā)布時間:2021-07-22 11:38:44 來源:億速云 閱讀:317 作者:小新 欄目:數(shù)據(jù)庫

這篇文章給大家分享的是有關(guān)Oracle如何實現(xiàn)分頁查詢的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

什么是分頁查詢

分頁查詢就是把query到的結(jié)果集按頁顯示。比如一個結(jié)果集有1W行,每頁按100條數(shù)據(jù)庫。而你獲取了第2頁的結(jié)果集。

為什么要分頁查詢

如果一個結(jié)果集有幾十W行,那么在一個頁面上顯示肯定顯示不完。同時,顯示數(shù)據(jù)庫記錄是需要加載到內(nèi)存的,而顯示大量數(shù)據(jù)是消耗內(nèi)存更多。

我們可以為了以下目的使用分頁查詢:

  • 為了精確定位結(jié)果集的內(nèi)容

  • 為了節(jié)約內(nèi)存

  • 為了在有限的頁面空間顯示適度的數(shù)據(jù)。

如何實現(xiàn)分頁查詢

使用Oracle的EMP表

select * from 
   ( select rownum rn, e.* from 
       ( select * from EMP) e 
   );

結(jié)果如下:

Oracle如何實現(xiàn)分頁查詢

分頁查詢源碼如下:

select * from 
     ( select rownum rn, e.* from 
              ( select * from EMP) e 
     )
where rn > pageSize * (page - 1) and rn <= pageSize * page

分析源碼:

我們選定每頁(pageSize)為5。那么EMP表目前共有三頁,1~5行為1頁;6~10行為1頁;1~15行為1頁(缺第15行,那么第3頁就顯示4行記錄)

頁面從第1頁開始。

我們要查詢第2頁的記錄,那么page = 2。

where rn > 5 and rn <= 10

那么第2頁是由第6,7,8,9,10行記錄形成的。

select * from 
     ( select rownum rn, e.* from 
              ( select * from EMP) e 
     )
where rn > 5 and rn <= 10

結(jié)果如下:

Oracle如何實現(xiàn)分頁查詢

分頁查詢也可以使用betwenn ... and ...

where rn = between (pageSize * (page - 1) + 1) and pageSize * page

可見分頁查詢是取某一范圍的結(jié)果集。

感謝各位的閱讀!關(guān)于“Oracle如何實現(xiàn)分頁查詢”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI