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
***************
pagezize=5;page=2
select a.* from (select * from department order by depname) a where rownum<10
minus (select * from (select * from department order by depname) b where rownum<5)
mysql資料庫
my sql資料庫最簡單,是利用mysql的limit函式,limit [offset,] rows從資料庫表中的第m條記錄開始檢索n條記錄的語句為:
select * from table(表名) limit startpos,pagesize
startpos:定義當前頁起始位置 注意:當前頁的起始位置只能在當前頁確定之後才能定義;
pagesize:定義每頁顯示資料的條數
如果給定2個引數,第乙個指定要返回的第一行的偏移量,第二個指定返回行的最大數目。初始行的偏移量是0(不是1)。
如:select * from table limit 5,10; 這個查詢出來的是第6到15之間的10條資料
如果給定乙個引數,它指出返回行的最大數目。
如:select * from table limit 5; 這個查詢出來的是前5條資料
(limit n等價於limit 0,n)
三類資料庫中進行分頁查詢的高效率方法(現在來看):
oracle:
select * from (
select my_table.*,rownum as my_rownum from (
/** 括號裡寫實際的需要查詢的sql語句**/
) as mytable where rownum <=200/**這裡是一頁中的最後一條記錄**/
) where my_rownum>=10 /**這裡是一頁中的第一條記錄**/
sqlserver:
select * from (
select top 頁面容量 * from (
select top 頁面容量*當前頁碼 * from
表 where 條件 order by 欄位a asc
)as temptable1 order by 欄位a desc
) as temptable2 order by 欄位a asc
mysql:
select 語句 limit 頁面的第一條記錄-1,頁面容量
要定義的變數→當前頁數:curr 每頁顯示條數:page
mysql :
select from 表名 limit (curr-1)*page
mssql2000:
select top page * from 表名 where 主鍵 not in (select top (curr-1)*page 主鍵 from 表名 order by 主鍵)
oracle:
select * from (select rownum temp_rownum,temp_table.* from (select * from 表名
) temp_table where rownum< curr * page + 1) where temp_rownum>= (curr - 1) * page + 1
order by 主鍵 desc
常見資料庫分頁SQL語句
我們在編寫mis系統和web應用程式等系統時,都涉及到與資料庫的互動,如果資料庫中資料量很大的話,一次檢索所有的記錄,會占用系統很大的資源,因此我們常常採用,需要多少資料就只從資料庫中取多少條記錄,即採用分頁語句。根據自己使用過的內容,把常見資料庫sql server,oracle和my sql的分...
常見資料庫分頁SQL語句
sql server 從資料庫表中的第m條記錄開始取n條記錄,利用top關鍵字 注意如果select語句中既有top,又有order by,則是從排序好的結果集中選擇 select from select top n from select top m n 1 from 表名稱 order by 主...
常見資料庫分頁SQL語句
我們在編寫mis系統和web應用程式等系統時,都涉及到與資料庫的互動,如果資料庫中資料量很大的話,一次檢索所有的記錄,會占用系統很大的資源,因此我們常常採用,需要多少資料就只從資料庫中取多少條記錄,即採用分頁語句。根據自己使用過的內容,把常見資料庫sql server,oracle和my sql的分...