分頁查詢是數據庫查詢中經常用到的一項操作,對查詢出來的結果進行分頁查詢可以方便瀏覽。那么Oracle、SQL Server、MySQL是如何實現查詢的呢?本文我們就來介紹這一部分內容。
首先我們先看一下SQL Server 數據庫中SQL語句查詢分頁數據的解決方案:
實例:要求選取tbllendlist中第3000頁的記錄,每一頁100條記錄。
方法1:
select?top?100?*?from?tbllendlist
where?fldserialNo?not?in
(
select?top?300100?fldserialNo?from?tbllendlist
order?by?fldserialNo
)
order?by?fldserialNo
方法2:
SELECT?TOP?100?*
FROM?tbllendlist
WHERE?(fldserialNo>
(SELECT?MAX(fldserialNo)
FROM?(SELECT?TOP?300100?fldserialNo
FROM?tbllendlist
ORDER?BY?fldserialNo)?AS?T))
ORDER?BY?fldserialNo
方法1執行速度比較快!
SQL Server數據庫
從數據庫表中的第M條記錄開始取N條記錄,利用Top關鍵字:注意如果Select語句中既有top,又有order by,則是從排序好的結果集中選擇:
SELECT?*
FROM??(?SELECT?Top?N?*
FROM????(SELECT?Top?(M?+?N?-?1)?*?FROM?表名稱?Order?by?主鍵?desc)?t1?)?t2
Order?by?主鍵?asc
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
SELECT?*
FROM?(?SELECT?TOP?20?*
FROM?(SELECT?TOP?29?*?FROM?Sys_option?order?by?sys_id?desc)?t1)?t2
Order?by?sys_id?asc
Oracle數據庫
從數據庫表中第M條記錄開始檢索N條記錄
SELECT?*
FROM?(SELECT?ROWNUM?r,t1.*?From?表名稱?t1?where?rownum
where?t2.r>=?M
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
SELECT?*
FROM?(SELECT?ROWNUM?R,t1.*?From?Sys_option?where?rownum<30)?t2
Where?t2.R>=?10
MySQL數據庫
MySQL數據庫最簡單,是利用mysql的LIMIT函數,LIMIT [offset,] rows從數據庫表中M條記錄開始檢索N條記錄的語句為:SELECT * FROM 表名稱 LIMIT M,N。
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:select * from sys_option limit 10,20?。
關于Oracle、SQL Server、MySQL數據庫分頁查詢的知識就介紹到這里了,希望本次的介紹能夠對您有所幫助。
【編輯推薦】
【責任編輯:趙鵬 TEL:(010)68476606】
點贊 0