一條SQL語句搞定SQLServer分頁的幾種方式

2022-01-19 03:00:45 字數 2437 閱讀 9707

適用於sql2000/2005

select

top頁大小 

*from

table1      

where

id not

in(      

select

top頁大小

*(頁數-1

) id 

from

table1 

order

byid      

)      

order

byid 

適用2000/2005

**select

top頁大小 

*from

table1      

where

id >

(      

select

isnull

(max

(id),

0)       

from

(      

select

top頁大小

*(頁數-1

) id 

from

table1 

order

byid      

) a      

)      

order

byid     

適用2005

select

top頁大小 

*from

(      

select

row_number() 

over

(order

byid) 

asrownumber,

*from

table1      

) a      

where

rownumber 

>

頁大小*

(頁數-

1)    

**--

-處理時候用程式碼增加個id int identity

--方法1:

--適用於 sql server 2000/2005

select

top頁大小 

*from

table1

where

id notin(

select

top頁大小

*(頁數-1

) id 

from

table1 

order

byid

)order

byid

--方法2:

--適用於 sql server 2000/2005

select

top頁大小 

*from

table1

where

id >

(select

isnull

(max

(id),0) 

from

(select

top頁大小

*(頁數-1

) id 

from

table1 

order

byid

) a)

order

byid

--方法3:

--適用於 sql server 2005

select

top頁大小 

*from

(select

row_number() 

over

(order

byid) 

asrownumber,

*from

table1

) awhere

rownumber 

>

頁大小*

(頁數-1)

--方法四 適用於 sql server 2005

declare

@pagenum

asint

, @pagesize

asint

set@pagenum=2

set@pagesize=3

select

*from

(select

row_number() 

over

(order

bynewsid 

desc

) as

rownum, 

newsid, topic, ntime, hits 

from

news) 

asd 

where

rownum 

between

(@pagenum-1

)*@pagesize+1

and@pagenum

*@pagesize

order

bynewsid 

desc

一條sql 語句搞定資料庫分頁

一條語句搞定資料庫分頁 select top 10 b.from select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc a,表名 b where b.主鍵字段 a.主鍵字段 order by a.排序字段 10 每頁記錄數 20 當前頁 1 每頁記錄數...

一條SQL語句研究

現有 select from t where a in 5,3,2,1,8,9,30.假設 a 是主鍵,in裡面的引數是唯一的。現要求輸出的結果集按照 in 提供的引數順序排序。而不是按照a本身的排序規則排序?另 如果不要求使用臨時表或表變數,那麼又有什麼辦法實現。臨時表方案參卡 create ta...

查詢 新增 修改 一條sql 搞定

1 不存在,則新增 不會自動修改 insert into king wz yname,title select 42 北京 from dual where not exists select id from king wz where yname 42 語句解析 select not exists ...