程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 一條sql 語句搞定數據庫分頁

一條sql 語句搞定數據庫分頁

編輯:ASP技巧

一條語句搞定數據庫分頁

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

10 = 每頁記錄數

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

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

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

 

經測試,以上分頁方法比使用臨時表分頁速度還要快,並且簡單易用

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved