Oracle分頁查詢

2022-06-27 14:30:16 字數 1566 閱讀 6759

當乙個表中資料量特別大的時候,如果一次性把資料顯示給使用者,會造成頁面過於龐大,體驗極差,解決方法就是使用分頁查詢。

使用分頁查詢首先要會使用rownum關鍵字,oracle對外提供的自動給查詢結果編號的關鍵字,與每行資料沒有關係。

注:rownum只能做 < 、<= 的判斷,不能進行 > 、 >= 的判斷。

原因:rownum被稱為偽列,是oracle資料庫從資料檔案或緩衝區中讀取資料的順序,第一條記錄為1,第二條為2,以此類推。當使用 > 、 >= 時,從緩衝區或資料檔案中得到的第一條記錄的rownum為1,不符合sql語句的條件會被刪除,接著取下一條,但是下一條的rownum還會是1,又被刪除,以此類推,便沒有資料了。

總結:rownum總是從1開始。

解決方法:巢狀乙個子查詢,將rownum偽列變成乙個真實的列。

1. 普通查詢:

2. 加上rownum列的查詢:

3. 查詢帶有rownum列的表(此時的rownum列作為固定列,是不變的)

4. 加分頁條件(因為此時rn列固定不變,所以可以對rn列增加約束)

-- n代表頁數,m代表一頁有幾條資料

select * from

(select emp.*,rownum rn from emp)

where rn>(&n-1)*&m and rn<=&n*&m;

例:n=1,m=5

5. 排序加分頁(因為加上rownum列後在排序會使rownum列順序錯亂,所以先進行排序,然後加上rownum列,最後在加分頁條件,三層巢狀子查詢)

ORACLE分頁查詢

單錶分頁 start num 起始行號 end num 截止行號 select t.from select s.rownum rn from table s where rownum end num t where rn start num 多表分頁 select from select temp....

Oracle分頁查詢

oracle的分頁查詢語句基本上可以按照本文給出的格式來進行套用。分頁查詢格式 select from select a.rownum rn from select from table name a where rownum 40 where rn 21 其中最內層的查詢select from t...

oracle 分頁查詢

1 要把rowid來分 select from t xiaoxi where rowid in select rid from select rownum rn,rid from select rowid rid,cid from t xiaoxi order by cid desc where r...