SQL2008 分頁顯示3種方法

2021-09-07 01:11:26 字數 1146 閱讀 5506

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

select top 10 *

from yieldrole

where id not in (

select top (10*(1-1))  id from yieldrole order by id )

order by id

方法2: 適用於 sql server 2000/2005/2008

--順序寫法:

select top 10 *

from yieldrole

where id >= (

select isnull(max(id),0) 

from  (

select top (10*(2-1)+1) id from yieldrole order by id

) a )

order by id

--降序寫法:

select top 10 *

from yieldrole

where id <= (

select isnull(min(id),0) 

from  (

select top (10*(2-1)+1) id from yieldrole order by id desc

) a )

order by id desc

方法3: 適用於 sql server 2000/2005/2008 

select top 10 * 

from  (

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

) awhere rownumber > 10*(2-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實現分頁的三種方法

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