欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

sqlserver中分頁,sql分頁的幾種方式

sql server 求和后如何分頁?請(qǐng)看SQL語句

四種方式實(shí)現(xiàn)SQLServer

創(chuàng)新互聯(lián)公司長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為岢嵐企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),岢嵐網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

分頁查詢

SQLServer

的數(shù)據(jù)分頁:

假設(shè)現(xiàn)在有這樣的一張表:

CREATE

TABLE

test

(

id

int

primary

key

not

null

identity,

names

varchar(20)

)

然后向里面插入大約1000條數(shù)據(jù),進(jìn)行分頁測(cè)試

假設(shè)頁數(shù)是10,現(xiàn)在要拿出第5頁的內(nèi)容,查詢語句如下:

--10代表分頁的大小

select

top

10

*

from

test

where

id

not

in

(

--40是這么計(jì)算出來的:10*(5-1)

select

top

40

id

from

test

order

by

id

)

order

by

id

原理:需要拿出數(shù)據(jù)庫的第5頁,就是40-50條記錄。首先拿出數(shù)據(jù)庫中的前40條記錄的id值,然后再拿出剩余部分的前10條元素

第二種方法:

還是以上面的結(jié)果為例,采用另外的一種方法

--數(shù)據(jù)的意思和上面提及的一樣

select

top

10

*

from

test

where

id

(

select

isnull(max(id),0)

from

(

select

top

40

id

from

test

order

by

id

)

A

)

order

by

id

原理:先查詢前40條記錄,然后獲得其最id值,如果id值為null的,那么就返回0

然后查詢id值大于前40條記錄的最大id值的記錄。

這個(gè)查詢有一個(gè)條件,就是id必須是int類型的。

第三種方法:

select

top

10

*

from

(

select

row_number()

over(order

by

id)

as

rownumber,*

from

test

)

A

where

rownumber

40

原理:先把表中的所有數(shù)據(jù)都按照一個(gè)rowNumber進(jìn)行排序,然后查詢r(jià)ownuber大于40的前十條記錄

這種方法和oracle中的一種分頁方式類似,不過只支持2005版本以上的

第四種:

存儲(chǔ)過程查詢

創(chuàng)建存儲(chǔ)過程

alter

procedure

pageDemo

@pageSize

int,

@page

int

AS

declare

@temp

int

set

@temp=@pageSize*(@page

-

1)

begin

select

top

(select

@pageSize)

*

from

test

where

id

not

in

(select

top

(select

@temp)

id

from

test)

order

by

id

end

執(zhí)行存儲(chǔ)過程

exec

10,5

SQL Server兩種分頁性能比較

SQL Server 在2012版本中 提供了一種新的分頁方式 fetch next

相比以前開窗函數(shù)來看有什么區(qū)別呢? 我用 sql server 系統(tǒng)表產(chǎn)生笛卡爾積 做了一個(gè)測(cè)試

先來看一下數(shù)據(jù)量

在翻頁數(shù)量不大的時(shí)候的比較 第20頁的時(shí)候的比較

1、開窗函數(shù)

2、fetch next

可以看出所花費(fèi)的時(shí)間相當(dāng)接近的,兩者都是1.2s

我們把頁數(shù)增大,再來看看區(qū)別 第200000頁的時(shí)候比較

一個(gè)花了3.9s,一個(gè)花了1.6s

當(dāng)隨著頁數(shù)的增加 可以看出 fetch next 分頁的性能是優(yōu)于開窗函數(shù)的。

所以當(dāng)你是使用sql server2012及以上版本的時(shí)候,建議還是采用 fetch next 來進(jìn)行分頁吧。

sqlserver中怎么分頁查詢

假設(shè)現(xiàn)在有這樣的一張表:

CREATE TABLE test

(

id int primary key not null identity,

names varchar(20)

)

然后向里面插入大約1000條數(shù)據(jù),進(jìn)行分頁測(cè)試

假設(shè)頁數(shù)是10,現(xiàn)在要拿出第5頁的內(nèi)容,查詢語句如下:

--10代表分頁的大小

select top 10 *

from test

where id not in

SQL Server 分頁 查詢語句

四種方式實(shí)現(xiàn)SQLServer 分頁查詢

SQLServer 的數(shù)據(jù)分頁:

假設(shè)現(xiàn)在有這樣的一張表:

CREATE TABLE test

(

id int primary key not null identity,

names varchar(20)

)

然后向里面插入大約1000條數(shù)據(jù),進(jìn)行分頁測(cè)試

假設(shè)頁數(shù)是10,現(xiàn)在要拿出第5頁的內(nèi)容,查詢語句如下:

--10代表分頁的大小

select top 10 *

from test

where id not in

(

--40是這么計(jì)算出來的:10*(5-1)

select top 40 id from test order by id

)

order by id

原理:需要拿出數(shù)據(jù)庫的第5頁,就是40-50條記錄。首先拿出數(shù)據(jù)庫中的前40條記錄的id值,然后再拿出剩余部分的前10條元素

第二種方法:

還是以上面的結(jié)果為例,采用另外的一種方法

--數(shù)據(jù)的意思和上面提及的一樣

select top 10 *

from test

where id

(

select isnull(max(id),0)

from

(

select top 40 id from test order by id

) A

)

order by id

原理:先查詢前40條記錄,然后獲得其最id值,如果id值為null的,那么就返回0

然后查詢id值大于前40條記錄的最大id值的記錄。

這個(gè)查詢有一個(gè)條件,就是id必須是int類型的。

第三種方法:

select top 10 *

from

(

select row_number() over(order by id) as rownumber,* from test

) A

where rownumber 40

原理:先把表中的所有數(shù)據(jù)都按照一個(gè)rowNumber進(jìn)行排序,然后查詢r(jià)ownuber大于40的前十條記錄

這種方法和oracle中的一種分頁方式類似,不過只支持2005版本以上的

第四種:

存儲(chǔ)過程查詢

創(chuàng)建存儲(chǔ)過程

alter procedure pageDemo

@pageSize int,

@page int

AS

declare @temp int

set @temp=@pageSize*(@page - 1)

begin

select top (select @pageSize) * from test where id not in (select top (select @temp) id from test) order by id

end

執(zhí)行存儲(chǔ)過程

exec 10,5

名稱欄目:sqlserver中分頁,sql分頁的幾種方式
轉(zhuǎn)載注明:http://chinadenli.net/article35/dseecpi.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版自適應(yīng)網(wǎng)站微信公眾號(hào)定制網(wǎng)站品牌網(wǎng)站設(shè)計(jì)網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)