oracle分頁,rownum的使用與理解

2021-10-21 12:16:07 字數 981 閱讀 5094

rownum可以理解為是乙個虛列、虛列、虛列

假設student學生表中有20條資料

兩種情況:

select * from student where rownum<10

或select * from student where rownum!=10

where + (rownum 表示式)

rownum=1,表示式結果為true,結果集儲存該條資料,比較下一條,此時rownum++,變為2;… ;當rownum=10時,表示式結果為false,結果集去掉該條資料,下條資料變為該條資料,因此rownum還等於10,並且直到表中的資料逐條篩選完,rownum還等於10。最終查詢的結果為9條資料。

select * from student where rownum>10

或select * from student where rownum<15 and rownum>10

或select * from student where rownum!=1

where + (rownum 表示式)

rownum=1,表示式結果為false,結果集去掉該條資料,下一條資料前進一位,此時rownum=1,還為1,並且直到表中的資料逐條篩選完,rownum還等於1。因此查詢結果為空。

因此,最標準的rownum分頁為:

select * from (select rownum rn,stu.* from student stu where rownum<15) where rn>10;

select * from (select stu.*,rownum rn from student stu where rownum<15) where rn>10;

一定要給表名和rownum取別名!

oracle 分頁查詢 rownum

rownum 可能都知道 rownum 只適用於小於或小於等於,如果進行等於判斷,那麼只能等於 1,不能進行大於的比較。rownum是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推。rownum 總是從1 開始,不管當前的記錄是否滿足查詢結果,rownu...

oracle的分頁函式rownum

rownum屬於oracle中的偽列 pseudocolumns 用法有些細節,所以單獨拉出來說明。主內容其他 語句為 select from t user where rownum 10 題目1答案 select from t user where rownum 5 該語句不返回任何結果。為什麼呢...

Oracle資料之rownum分頁

為獲取rownum在n1到n2之間的資料,先select所有小於n2值得資料並加上rownum值列,再外套乙個select語句查詢rownum大於n1的資料。select from select t1.rownum rn from table1 t1 where rownumn1 select fr...