SQL分頁查詢

2021-06-18 13:48:33 字數 1709 閱讀 8453

方法1: 適用於 sql server 2000/2005

1

select

top 頁大小 *

2from table1

3where id not

in4 (

5select

top 頁大小*(頁數-

1) id from table1 order

by id

6 )

7order

by id

方法2:

適用於 sql server 2000/2005

1

--順序寫法:

2select

top 頁大小 *

3from table1

4where id >=

5 (6

select

isnull(max(id),0)

7from

8 (9

select

top 頁大小*(頁數-

1)+

1id from table1 order

by id

10 ) a

11 )

12order

by id

1314

--降序寫法:

15select

top 頁大小 *

16from table1

17where id <=

18 (

19select

isnull(min(id),0)

20from

21 (

22select

top 頁大小*(頁數-

1)+

1id from table1 order

by id desc

23 ) a

24 )

25order

by id desc

方法3:

適用於 sql server 2005

1

select

top 頁大小 *

2from

3 (

4select row_number() over (order

by id) as rownumber,*

from table1

5 ) a

6where rownumber > 頁大小*(頁數-

1)

說明,頁大小:每頁的行數;頁數:第幾頁。使用時,請把「頁大小」和「頁大小*(頁數-1)」替換成數字。

其它的方案:如果沒有主鍵,可以用臨時表,也可以用方案三做,但是效率會低。

建議優化的時候,加上主鍵和索引,查詢效率會提高。

通過sql 查詢分析器,顯示比較:我的結論是:

分頁方案二:(利用id大於多少和select top分頁)效率最高,需要拼接sql語句

分頁方案一:(利用not in和select top分頁)   效率次之,需要拼接sql語句

分頁方案三:(利用sql的游標儲存過程分頁)    效率最差,但是最為通用

SQL分頁查詢

分頁sql查詢在程式設計的應用很多,主要有儲存過程分頁和sql分頁兩種,我比較喜歡用sql分頁,主要是很方便。為了提高查詢效率,應在排序欄位上加索引。sql分頁查詢的原理很簡單,比如你要查100條資料中的30 40條,你先查詢出前40條,再把這30條倒序,再查出這倒序後的前十條,最後把這十條倒序就是...

sql分頁查詢

declare id int declare moverecords int declare currentpage int declare pagesize int set currentpage 300 set pagesize 100 currentpage和 pagesize是傳入引數 se...

SQL分頁查詢

關於sql語句分頁,網上也有很多啦,我貼一部分過來,並且總結自己已知的分頁到下面,方便日後查閱。方法1 適用於 sql server 2000 2005 1 select top 頁大小 2from table1 3where id not in4 5select top 頁大小 頁數 1 id f...