1、SQL Server、Access數據庫
這都微軟的數據庫,都是一家人,基本的操作都是差不多,常采用如下分頁語句:
PAGESIZE:每頁顯示的記錄數
CURRENTPAGE:當前頁號
數據表的名字是:components
索引主鍵字是:id
以下是引用片段:
selecttopPAGESIZE*fromcomponentswhereidnotin
(selecttop(PAGESIZE*(CURRENTPAGE-1))
idfromcomponentsorderbyid)orderbyid
如下列:
以下是引用片段:
selecttop10*fromcomponentswhereidnotin
(selecttop10*10idfromcomponentsorderbyid)
orderbyid
從101條記錄開始選擇,只選擇前面的10條記錄
2、Oracle數據庫
因為Oracle數據庫沒有Top關鍵字,所以這裡就不能夠像微軟的數據據那樣操作,這裡有兩種方法:
(1)、一種是利用相反的。
PAGESIZE:每頁顯示的記錄數
CURRENTPAGE:當前頁號
數據表的名字是:components
索引主鍵字是:id
以下是引用片段:
select*fromcomponentswhereidnot
in(selectidfromcomponentswhere
rownum<=(PAGESIZE*(CURRENTPAGE-1)))
andrownum<=PAGESIZEorderbyid;
如下例:
以下是引用片段:
select*fromcomponentswhereidnotin
(selectidfromcomponentswhererownum<=100)
andrownum<=10orderbyid;
從101到記錄開始選擇,選擇前面10條。
(2)、使用minus,即中文的意思就是減去。
以下是引用片段:
select*fromcomponentswhererownum
<=(PAGESIZE*(CURRENTPAGE-1))minus
select*fromcomponentswhererownum
<=(PAGESIZE*(CURRENTPAGE-2));
如例:select * from components where
以下是引用片段:
rownum<=10minusselect*fromcomponents
whererownum<=5;.
(3)、一種是利用Oracle的rownum,這個是Oracle查詢自動返回的序號,一般不顯示,但是可以通過select rownum from [表名]看到,注意,它是從1到當前的記錄總數。
以下是引用片段:
select*from(selectrownumtid,components.
*fromcomponentswhererownum<=100)wheretid<=10