内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

SQLServer中的row_number函數(shù)怎么使用

本文小編為大家詳細(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)還提供了襄城免費建站歡迎大家使用!

    一、SQL Server Row_number函數(shù)簡介

    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ù)對順序敏感

    二、Row_number函數(shù)的具體用法

    1.使用row_number()函數(shù)對結(jié)果集進(jìn)行編號

    示例:

    對test_user表的查詢結(jié)果標(biāo)記行號,并新增 “編號”列返回

    -- 使用 ROW_NUMBER()函數(shù)對結(jié)果進(jìn)行編號
    select ROW_NUMBER() over(order by id) as 編號,* 
    from test_user;

    運行結(jié)果:

    SQLServer中的row_number函數(shù)怎么使用

    可以看到,查詢結(jié)果新增了一列,專門用來標(biāo)記行號。

    有了編號,我們就可以方便地進(jìn)行分頁查詢了。

    2.對結(jié)果集按照指定列進(jìn)行分組,并在組內(nèi)按照指定列排序

    示例:

    把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é)果:

    SQLServer中的row_number函數(shù)怎么使用

    3.對結(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é)果:

    SQLServer中的row_number函數(shù)怎么使用

    查詢結(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&middot;&middot;&middot;&middot;&middot;&middot;
    2、DENSE_RANK()
    這就是題目中所用到的函數(shù),在計算排序時,若存在相同位次,不會跳過之后的位次。
    例如,有3條排在第1位時,排序為:1,1,1,2&middot;&middot;&middot;&middot;&middot;&middot;

    讀到這里,這篇“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)

    成都seo排名網(wǎng)站優(yōu)化
    唐河县| 北宁市| 涞水县| 申扎县| 屯昌县| 盐池县| 鄢陵县| 聂拉木县| 从化市| 江安县| 曲麻莱县| 义乌市| 宜兰市| 广南县| 五莲县| 法库县| 化德县| 水富县| 佛山市| 汝州市| 巴青县| 行唐县| 湖南省| 马龙县| 佛冈县| 大方县| 大石桥市| 建瓯市| 双辽市| 宜州市| 吉木萨尔县| 潼南县| 婺源县| 诸城市| 九龙坡区| 利津县| 贵定县| 新余市| 板桥市| 剑阁县| 玛沁县|