Oracle中經典分頁代碼
在Oracle中因為沒有top關鍵字,所以在sqlserver中的分頁代碼並不適用於Oracle,那麼在Oracle中如何來實現分頁呢?
--查詢所有資料
STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
9 王五 15 5.9876E+15 5
13 哈哈 15 5.9876E+15 5
15 李四 12 1.5666E+10 6
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
1 66 10 5566554666 5
比如說我要查詢stuInfo表中第二到第四條記錄
--兩層嵌套分頁
SQL> --兩層嵌套分頁
SQL> select * from (select stuInfo.*,rownum as rn from stuInfo where rownum<=4) where rn >=2;
STUNO STUNAME STUAGE STUID STUSEAAT RN
------ -------------------- ---------- ---------- ---------- ----------
13 哈哈 15 5.9876E+15 5
15 李四 12 1.5666E+10 6
1 66 10 5566554666 5
--如果我沒有對原始表有其他的排序操作的話,兩層嵌套就可以滿足需求了,但是如果我有一個條件是必須先將學號進行降序排列,然後取第二到第四條記錄呢?
那麼就必須使用三層嵌套了
SQL> select * from (select stu.* , rownum as rn from (select stuInfo.* from stuI
nfo order by stuno desc) stu where rownum<=4) where rn>=2;
STUNO STUNAME STUAGE STUID STUSEAAT RN
------ -------------------- ---------- ---------- ---------- ----------
15 李四 12 1.5666E+10 6 2
13 哈哈 15 5.9876E+15 5 3
1 66 10 5566554666 5 4
這樣就完成了分頁查詢了