資料庫分頁查詢

2021-08-27 13:07:37 字數 1212 閱讀 7621

oracle

的rownum

欄位是個比較奇怪的字段。拿一張有

26條記錄的

test

表來舉例。

select * from test where rownum >=1;

select * from test where rownum >=2;

select * from test where rownum <=10;

第一條sql查出了

26條記錄,第二條

sql一條記錄也沒查出。第三條

sql查出

10條記錄。導致這個結果的原因是

rownum

是個虛擬的字段,它是在記錄輸出的時候是逐步產生的。

對於第一條

sql,第一條記錄的

rownum是1

,滿足條件被輸出,因此第二條紀錄的

rownum

就變成2

,滿足條件被輸出,依此類推,就把所有紀錄都查出來了。

對於第二條

sql,第一條記錄的

rownum是1,

不滿足條件沒被輸出,因此第二條記錄的

rownum

還是1,

沒滿足條件沒被輸出,依此類推,所有紀錄都沒能被查出來。

對於第三條

sql,第一條記錄的

rownum是1

,滿足條件被輸出,因此第二條記錄的

rownum

就遞增為

2,滿足條件被輸出,直到第

11條及之後的所有記錄的

rownum

變成了11

,不滿足條件沒被輸出。

所以要查詢

test表第n

條到第m

條的記錄,我們應該這樣寫:

1.oracle:

select * from

( select rownum r , * from test ) a

where a.r <= m and a.r >= n;

2.microsoft sql server 2000:

select * from

( select top 5 * from

) 3. mysql:

select * from test limit 10 == select * from test limit 0,10;

select * from test limit 10,20;

資料庫查詢分頁。

csdn上推薦的,轉過來的。呵呵!表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 頁記錄數量 from 表名 where id not in select top 每頁行數 頁數 1 id fr...

資料庫分頁查詢

資料庫分頁查詢 在這裡主要講解一下mysql sqlserver2000 及sqlserver2005 和orcale三種資料庫實現分頁查詢的方法。可能會有人說這些網上都有,但我的主要目的是把這些知識通過我實際的應用總結歸納一下,以方便大家查詢使用。下面就分別給大家介紹 講解一下三種資料庫實現分頁查...

資料庫分頁查詢

1 mysql select from demo where 1 1 limit 2,3limit是用來分頁的,第乙個引數是行號,第二個引數是說有多少行 2 oracle 第一種select id,field name,from table name where id in select id fr...