最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL?Server中row_number函數(shù)用法入門介紹

 更新時(shí)間:2023年03月02日 12:02:22   作者:格子衫111  
SQL?ROW_NUMBER函數(shù)是臨時(shí)值序列的非持久生成,并且在執(zhí)行查詢時(shí)會(huì)動(dòng)態(tài)計(jì)算該函數(shù),下面這篇文章主要給大家介紹了關(guān)于SQL?Server中row_number函數(shù)用法的相關(guān)資料,需要的朋友可以參考下

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

ROW_NUMBER()是一個(gè)Window函數(shù),它為結(jié)果集的分區(qū)中的每一行分配一個(gè)連續(xù)的整數(shù)。 行號(hào)以每個(gè)分區(qū)中第一行的行號(hào)開頭。

語(yǔ)法實(shí)例:

select *,row_number() over(partition by column1 order by column2) as n
from tablename

在上面語(yǔ)法中:

  • PARTITION BY子句將結(jié)果集劃分為分區(qū)。 ROW_NUMBER()函數(shù)分別應(yīng)用于每個(gè)分區(qū),并重新初始化每個(gè)分區(qū)的行號(hào)。
  • PARTITION BY子句是可選的。如果未指定,ROW_NUMBER()函數(shù)會(huì)將整個(gè)結(jié)果集視為單個(gè)分區(qū)。
  • ORDER BY子句定義結(jié)果集的每個(gè)分區(qū)中的行的邏輯順序。 ORDER BY子句是必需的,因?yàn)镽OW_NUMBER()函數(shù)對(duì)順序敏感

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

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

示例:

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

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

運(yùn)行結(jié)果:

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

有了編號(hào),我們就可以方便地進(jìn)行分頁(yè)查詢了,如何操作,可參考另外篇文章:sqlServer如何實(shí)現(xiàn)分頁(yè)查詢

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

示例:

把test_user表的name按照小組進(jìn)行分組顯示,分組后在組內(nèi)進(jìn)行從低到高id排序

-- 使用partition by對(duì)結(jié)果集進(jìn)行分組
select *,row_number() over(partition by name order by id) as n 
from  test_user; 

運(yùn)行結(jié)果:

3.對(duì)結(jié)果集按照指定列去重

示例:

對(duì) 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)編號(hào)為1的數(shù)據(jù)
where a.row_id<2;

運(yùn)行結(jié)果:

查詢結(jié)果先是經(jīng)過name分組,然后組內(nèi)進(jìn)行id升序排序,組內(nèi)編號(hào)為1的第1條數(shù)據(jù),自然就是id最小的數(shù)據(jù)。

注意:

當(dāng)我們按成績(jī)分?jǐn)?shù)查詢名次等需求時(shí),不能用row_number(),因?yàn)槿绻嘤袃蓚€(gè)并列第一,row_number()只返回一個(gè)結(jié)果。這個(gè)時(shí)候就要用到另外一個(gè)函數(shù),rank()和dense_rank()。

rank()和dense_rank()區(qū)別:

1、RANK()
在計(jì)算排序時(shí),若存在相同位次,會(huì)跳過之后的位次。
例如,有3條排在第1位時(shí),排序?yàn)椋?,1,1,4······
2、DENSE_RANK()
這就是題目中所用到的函數(shù),在計(jì)算排序時(shí),若存在相同位次,不會(huì)跳過之后的位次。
例如,有3條排在第1位時(shí),排序?yàn)椋?,1,1,2······

 總結(jié)

到此這篇關(guān)于SQL Server中row_number函數(shù)用法入門介紹的文章就介紹到這了,更多相關(guān)SQLServer row_number函數(shù)用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • sql腳本查詢數(shù)據(jù)庫(kù)表,數(shù)據(jù),結(jié)構(gòu),約束等操作的方法

    sql腳本查詢數(shù)據(jù)庫(kù)表,數(shù)據(jù),結(jié)構(gòu),約束等操作的方法

    本文介紹了“sql腳本查詢數(shù)據(jù)庫(kù)表,數(shù)據(jù),結(jié)構(gòu),約束等操作的方法”,需要的朋友可以參考一下
    2013-03-03
  • Sql Server刪除數(shù)據(jù)庫(kù)時(shí)提示數(shù)據(jù)庫(kù)正在被使用的解決辦法

    Sql Server刪除數(shù)據(jù)庫(kù)時(shí)提示數(shù)據(jù)庫(kù)正在被使用的解決辦法

    當(dāng)您嘗試刪除SQL Server中的某個(gè)對(duì)象(如數(shù)據(jù)庫(kù)、表等)時(shí),如果有程序或進(jìn)程正在使用該對(duì)象,您可能會(huì)收到一個(gè)錯(cuò)誤信息,提示該對(duì)象正被使用,所以本文給大家介紹了Sql Server刪除數(shù)據(jù)庫(kù)時(shí)提示數(shù)據(jù)庫(kù)正在被使用的解決辦法,需要的朋友可以參考下
    2024-05-05
  • 探討SQL compute by的使用分析

    探討SQL compute by的使用分析

    本篇文章是對(duì)SQL compute by的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MSSQL 首字母替換成大寫字母

    MSSQL 首字母替換成大寫字母

    MSSQL將首字母替換成大寫的實(shí)現(xiàn)語(yǔ)句,需要的朋友可以參考下。
    2009-09-09
  • SQL?Server數(shù)據(jù)庫(kù)之表的高級(jí)查詢

    SQL?Server數(shù)據(jù)庫(kù)之表的高級(jí)查詢

    這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫(kù)之表的高級(jí)查詢的相關(guān)資料,高級(jí)查詢?cè)跀?shù)據(jù)庫(kù)中用得是最頻繁的,也是應(yīng)用最廣泛的,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • SqlDateTime溢出該怎么解決

    SqlDateTime溢出該怎么解決

    這篇文章主要介紹了SqlDateTime溢出該怎么解決的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • 簡(jiǎn)單介紹SQL Server里的閂鎖

    簡(jiǎn)單介紹SQL Server里的閂鎖

    這篇文章我們探討了SQL Server里的閂鎖,以及如何使用DMV sys.dm_os_wait_stats 和sys.dm_os_latch_stats進(jìn)行閂鎖等待的故障排除,需要的朋友可以參考下
    2015-07-07
  • SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解

    SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解

    在數(shù)據(jù)庫(kù)的學(xué)習(xí)中對(duì)于一個(gè)表的主鍵和外鍵的認(rèn)識(shí)是非常重要的,下面這篇文章主要給大家介紹了關(guān)于SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • sqlserver 字段值拼接的實(shí)現(xiàn)示例

    sqlserver 字段值拼接的實(shí)現(xiàn)示例

    拼接字段可以通過多種方法實(shí)現(xiàn),本文主要介紹了sqlserver字段值拼接的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Sql Server中的視圖介紹

    Sql Server中的視圖介紹

    這篇文章主要介紹了Sql Server中的視圖介紹,本文講解了視圖的定義、視圖的作用、創(chuàng)建視圖實(shí)例、刪除修改視圖等內(nèi)容,需要的朋友可以參考下
    2015-01-01

最新評(píng)論

东乌珠穆沁旗| 井陉县| 阳朔县| 肥西县| 施甸县| 八宿县| 东乌| 盈江县| 丽江市| 双峰县| 友谊县| 阳高县| 顺义区| 黄龙县| 长沙市| 汉沽区| 南川市| 平邑县| 玉门市| 铜陵市| 犍为县| 金秀| 隆回县| 张家川| 余姚市| 油尖旺区| 岑溪市| 改则县| 邳州市| 株洲市| 阆中市| 乃东县| 略阳县| 宣武区| 宁海县| 利辛县| 上高县| 湘潭县| 沈丘县| 登封市| 厦门市|