本文小編為大家詳細(xì)介紹“SQLServer中的row_number函數(shù)怎么使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“SQLServer中的row_number函數(shù)怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了襄城免費建站歡迎大家使用!
ROW_NUMBER()是一個Window函數(shù),它為結(jié)果集的分區(qū)中的每一行分配一個連續(xù)的整數(shù)。 行號以每個分區(qū)中第一行的行號開頭。
語法實例:
select *,row_number() over(partition by column1 order by column2) as n from tablename
在上面語法中:
PARTITION BY子句將結(jié)果集劃分為分區(qū)。 ROW_NUMBER()函數(shù)分別應(yīng)用于每個分區(qū),并重新初始化每個分區(qū)的行號。
PARTITION BY子句是可選的。如果未指定,ROW_NUMBER()函數(shù)會將整個結(jié)果集視為單個分區(qū)。
ORDER BY子句定義結(jié)果集的每個分區(qū)中的行的邏輯順序。 ORDER BY子句是必需的,因為ROW_NUMBER()函數(shù)對順序敏感
示例:
對test_user表的查詢結(jié)果標(biāo)記行號,并新增 “編號”列返回
-- 使用 ROW_NUMBER()函數(shù)對結(jié)果進(jìn)行編號 select ROW_NUMBER() over(order by id) as 編號,* from test_user;
運行結(jié)果:
可以看到,查詢結(jié)果新增了一列,專門用來標(biāo)記行號。
有了編號,我們就可以方便地進(jìn)行分頁查詢了。
示例:
把test_user表的name按照小組進(jìn)行分組顯示,分組后在組內(nèi)進(jìn)行從低到高id排序
-- 使用partition by對結(jié)果集進(jìn)行分組 select *,row_number() over(partition by name order by id) as n from test_user;
運行結(jié)果:
示例:
對 test_user表按name進(jìn)行分組顯示,結(jié)果集中只顯示每組中一條 id最小的數(shù)據(jù)
select a.* from ( select *,row_number() over(partition by name order by id) as row_id from test_user ) as a -- 只查詢組內(nèi)編號為1的數(shù)據(jù) where a.row_id<2;
運行結(jié)果:
查詢結(jié)果先是經(jīng)過name分組,然后組內(nèi)進(jìn)行id升序排序,組內(nèi)編號為1的第1條數(shù)據(jù),自然就是id最小的數(shù)據(jù)。
注意:
當(dāng)我們按成績分?jǐn)?shù)查詢名次等需求時,不能用row_number(),因為如果同班有兩個并列第一,row_number()只返回一個結(jié)果。這個時候就要用到另外一個函數(shù),rank()和dense_rank()。
rank()和dense_rank()區(qū)別:
1、RANK()
在計算排序時,若存在相同位次,會跳過之后的位次。
例如,有3條排在第1位時,排序為:1,1,1,4······
2、DENSE_RANK()
這就是題目中所用到的函數(shù),在計算排序時,若存在相同位次,不會跳過之后的位次。
例如,有3條排在第1位時,排序為:1,1,1,2······
讀到這里,這篇“SQLServer中的row_number函數(shù)怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁名稱:SQLServer中的row_number函數(shù)怎么使用
本文地址:http://www.rwnh.cn/article22/ggohcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、域名注冊、商城網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)