日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用SQL Server查詢語句選取前N行數(shù)據(jù)

使用SQL Server查詢語句可以實(shí)現(xiàn)多種查詢,下面為您介紹的SQL Server查詢語句可以實(shí)現(xiàn)選取前N行數(shù)據(jù),希望對您能有所幫助。

在默認(rèn)情況下,SQL Server將返回select語句所查詢到的所有行。而使用可選的top選項可以指定返回的行數(shù)。

Top通常與order by 配合工作,order by可以控制哪些行應(yīng)當(dāng)排在前面,當(dāng)然,沒有order by子句top也可以正常工作,不過返回的沒有排序的的結(jié)果集合中的前N行數(shù)據(jù)。

例如我們有下面這張表:

ID    Name    Age

1     aa       15

2     bb       20

3     cc       25

4     dd       30

5     ee       20

6     ff       20

要查找年齡最小的前3個人,寫如下SQL Server查詢語句:

SELECT TOP 3 *

FROM StuList

ORDER BY Age

返回結(jié)果集為:

1    aa    15

2    bb    20

5    ee    20

這個SQL Server查詢語句看起來很清晰,結(jié)果也不錯,但是很不幸,它是錯誤的,因為有3個記錄的年齡都是20,要解決這個問題,可以使用with ties選項。

對于top關(guān)鍵詞來說,with ties選項很重要,它可以在top返回的結(jié)果之后附加多個行,這些行與top返回的結(jié)果集***一行在order by子句指定的排序列上具有相同的值。

下面是修改后的代碼:

SELECT TOP 3 WITH TIES *

FROM StuList

ORDER BY Age

返回結(jié)果集為:

1    aa    15

2    bb    20

5    ee    20

6    ff    20

對照表的內(nèi)容我們發(fā)現(xiàn),這樣的返回結(jié)果就是正確的了。

在select語句中必須寫名top應(yīng)當(dāng)返回的行數(shù)量或者百分比,不能使用變量或者表達(dá)式來替代top中的數(shù)字和百分比。

返回限定行數(shù)的另一種方法是對rowcount全局變量進(jìn)行設(shè)置,要取消rowcount的限制作用,可以將它設(shè)置為0。

例如:

SET ROWCOUNT 3

SELECT *

FROM StuList

ORDER BY Age

這樣也會返回3行結(jié)果,但是它沒有with ties選項,所以仍然可能會生成不完整的結(jié)果。

注意:Top是Microsoft T-SQL 對ANSI SQL的擴(kuò)展,是不可移植的。如果必須將數(shù)據(jù)庫移植到另一個數(shù)據(jù)庫平臺,使用top就會帶來轉(zhuǎn)換上的麻煩。相反,rowcount變量是可以移植的。

【編輯推薦】

SQL Server連接錯誤的處理方法

SQL Server管理相關(guān)的注冊表技巧

SQL Server服務(wù)器角色簡介

SQL Server對象許可管理

全面解析SQL Server作業(yè)


網(wǎng)頁名稱:使用SQL Server查詢語句選取前N行數(shù)據(jù)
鏈接URL:http://www.5511xx.com/article/cdsieec.html