SQL分頁查詢

2021-06-02 05:04:27 字數 1721 閱讀 4415

關於sql語句分頁,網上也有很多啦,我貼一部分過來,並且總結自己已知的分頁到下面,方便日後查閱。

方法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)+1)id 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)+1)id 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 分頁查詢

declare pageindex int declare pagesize int set pageindex 1 set pagesize 50 select from select row number over order by cno code as rownum,cno code fro...