SQL三種分頁方案

2021-08-31 19:58:33 字數 1030 閱讀 8086

[b]分頁方法:[/b]

sql法、儲過程法、游標法。

游標耗資、效率低;

儲存過程不錯,因為儲存過程是經過預編譯的效率高、靈活。

[b]這裡介紹sql分頁法:[/b]

方法1:

適用於 sql server 2000/2005

select top 頁大小 *

from table1

where id not in

(select top 頁大小*(頁數-1) id from table1 order by id

)order by id

方法2:

適用於 sql server 2000/2005

select top 頁大小 *

from table1

where id >

(select isnull(max(id),0)

from

(select top 頁大小*(頁數-1) id from table1 order by id

) a)

order by id

方法3:

適用於 sql server 2005

select top 頁大小 *

from

(select row_number() over (order by id) as rownumber,* from table1

) awhere rownumber > 頁大小*(頁數-1)

頁大小:每頁的行數;

頁數:第幾頁;

使用時,請把「頁大小」和「頁大小*(頁數-1)」替換成數字。

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

加上主鍵和索引,查詢效率會提高。

通過sql查詢分析器,顯示:

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

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

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

三種SQL分頁法

三種sql分頁法 表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top 20 id from testtabl...

三種SQL分頁法

三種sql分頁法 表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top 20 id from testtabl...

三種SQL分頁法

三種sql分頁法 表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top 20 id from testtabl...