我們在編寫mis系統和web應用程式等系統時,都涉及到與資料庫的互動,如果資料庫中資料量很大的話,一次檢索所有的記錄,會占用系統很大的資源,因此我們常常採用,需要多少資料就只從資料庫中取多少條記錄,即採用分頁語句。根據自己使用過的內容,把常見資料庫sql server,oracle和my sql的分頁語句,從資料庫表中的第m條資料開始取n條記錄的語句總結如下:
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
oralce資料庫
從資料庫表中第m條記錄開始檢索n條記錄
select *
from (select rownum r,t1.* from 表名稱 t1 where rownum < m + n) t2
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
my sql資料庫
my sql資料庫最簡單,是利用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
Sql 分頁語句
with temptb as select row number over order by id as rowid,from pagecut select from temptb where rowid between 2 50 and 2 50 50 這是乙個資料分頁方法,從sql2005起就支...
SQL分頁語句
這個分頁方法 sql分頁語句 本人對原作者的方案二做了小小的改動 原語句 select top 頁大小 from table1 where id select isnull max id 0 from select top 頁大小 頁數 1 id from table1 order by id a ...
SQL分頁語句
有關分頁 sql 的資料很多,有的使用儲存過程,有的使用游標。本人不喜歡使用游標,我覺得它耗資 效率低 使用儲存過程是個不錯的選擇,因為儲存過程是經過預編譯的,執行效率高,也更靈活。先看看單條 sql 語句的分頁 sql 吧。方法1 適用於 sql server 2000 2005 select t...