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

來源:互聯網
上載者:User
分頁|資料|資料庫|語句 一條語句搞定資料庫分頁

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



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



原創文章,2004.5.26首發於csdn文檔中心,轉載請註明出處,謝謝



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。