SQL Server實(shí)現(xiàn)分頁(yè)方法介紹
一、創(chuàng)建測(cè)試表
CREATE TABLE [dbo].[Student]( [id] [int] NOT NULL, [name] [nvarchar](50) NULL, [age] [int] NULL)
二、創(chuàng)建測(cè)試數(shù)據(jù)
declare @i int set @i=1 while(@i<10000) begin insert into Student select @i,left(newid(),7),@i+12 set @i += 1 end
三、測(cè)試
1、使用top關(guān)鍵字
top關(guān)鍵字表示跳過(guò)多少條取多少條
declare @pageCount int --每頁(yè)條數(shù) declare @pageNo int --頁(yè)碼 declare @startIndex int --跳過(guò)的條數(shù) set @pageCount=10 set @pageNo=3 set @startIndex=(@pageCount*(@pageNo-1)) select top(@pageCount) * from Student where ID not in ( select top (@startIndex) ID from Student order by id ) order by ID
測(cè)試結(jié)果:
2、使用row_number()函數(shù)
declare @pageCount int --頁(yè)數(shù) declare @pageNo int --頁(yè)碼 set @pageCount=10 set @pageNo=3 --寫(xiě)法1:使用between and select t.row,* from ( select ROW_NUMBER() over(order by ID asc) as row,* from Student ) t where t.row between (@pageNo-1)*@pageCount+1 and @pageCount*@pageNo --寫(xiě)法2:使用 “>”運(yùn)算符 select top (@pageCount) * from ( select ROW_NUMBER() over(order by ID asc) as row,* from Student ) t where t.row >(@pageNo-1)*@pageCount --寫(xiě)法3:使用and運(yùn)算符 select top (@pageCount) * from ( select ROW_NUMBER() over(order by ID asc) as row,* from Student ) t where t.row >(@pageNo-1)*@pageCount and t.row<(@pageNo)*@pageCount+1
四、總結(jié)
ROW_NUMBER()只支持sql2005及以上版本,top有更好的可移植性,能同時(shí)適用于sql2000及以上版本、access。
這篇文章介紹了SQL Server實(shí)現(xiàn)分頁(yè)方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
相關(guān)文章
透明數(shù)據(jù)加密(TDE)庫(kù)的備份和還原
對(duì)于包含敏感數(shù)據(jù)的庫(kù),要實(shí)現(xiàn)備份加密。即備份文件別人拿到也不能還原和查看其中的數(shù)據(jù)2012-07-07分享整理的12條sql語(yǔ)句連同數(shù)據(jù)
原本sql寫(xiě)得也不好,近幾年數(shù)據(jù)庫(kù)用得少,sql更是荒廢了,最近復(fù)習(xí)sql,網(wǎng)上例 子很多,但都只是提供sql例子,沒(méi)有配套的數(shù)據(jù)用來(lái)自己練習(xí)和調(diào)試2012-06-06sqlserver數(shù)據(jù)庫(kù)優(yōu)化解析(圖文剖析)
這篇文章主要介紹了sql數(shù)據(jù)庫(kù)查詢數(shù)據(jù)慢,針對(duì)如何優(yōu)化sqlserver數(shù)據(jù)庫(kù)做介紹,需要的朋友可以參考下2015-07-07Sqlserver創(chuàng)建用戶并授權(quán)的實(shí)現(xiàn)步驟
這篇文章主要介紹了Sqlserver創(chuàng)建用戶并授權(quán)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04不同數(shù)據(jù)庫(kù)之間導(dǎo)入導(dǎo)出功能介紹
在SQL Server中使用最廣泛的就是通過(guò)SELECT INTO語(yǔ)句導(dǎo)出數(shù)據(jù),SELECT INTO語(yǔ)句同時(shí)具備兩個(gè)功能2010-12-12SQL SERVER 與ACCESS、EXCEL的數(shù)據(jù)轉(zhuǎn)換方法分享
熟悉SQL SERVER 2000的數(shù)據(jù)庫(kù)管理員都知道,其DTS可以進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出,其實(shí),我們也可以使用Transact-SQL語(yǔ)句進(jìn)行導(dǎo)入導(dǎo)出操作2012-02-02win7系統(tǒng)安裝SQLServer2000的詳細(xì)步驟(圖文)
這篇文章主要介紹了win7系統(tǒng)安裝SQLServer2000的詳細(xì)步驟,里面有一些需要注意的事項(xiàng),大家可以參考下2014-07-07IN&EXISTS與NOT IN&NOT EXISTS 的優(yōu)化原則小結(jié)
下面只是從理論上提出了一些建議,最好的原則是大家在上面的基礎(chǔ)上,能夠使用執(zhí)行計(jì)劃來(lái)分析,得出最佳的語(yǔ)句的寫(xiě)法。2010-06-06