明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

一條sql 語句搞定數(shù)據(jù)庫分頁

[摘要]antshome(原作)首發(fā):CSDN一條語句搞定數(shù)據(jù)庫分頁select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字...

antshome(原作)首發(fā):CSDN

一條語句搞定數(shù)據(jù)庫分頁

select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段

10 = 每頁記錄數(shù)

20 = (當前頁 + 1) * 每頁記錄數(shù)

以上語句即可以實現(xiàn)分頁,但是最后取出的結(jié)果排序是升序,如果需要結(jié)果集為降序(例如時間),則有兩種方法可以處理

1.使用以下語句,但效率可能要降低一些

select * from 表名 b, (select top 10 主鍵字段,排序字段 from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a order by 排序字段 ) c where b.主鍵字段 = c.主鍵字段 order by c.排序字段 desc

2.在ado里處理,將記錄集游標移到最后,然后前移

''以下為asp范例

set rsTemp = Server.CreateObject("adodb.recordset")

rsTemp.Open 語句,conn,1,1

rsTemp.MoveLast

for i = 1 to rsTemp.RecordCount

 '取值....

rsTemp.MovePrevious

next

 

經(jīng)測試,以上分頁方法比使用臨時表分頁速度還要快,并且簡單易用