當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


SQL Server RANK()用法及代碼示例


RANK()函數是一個窗口函數,可以在SQL Server中用於為結果集的分區內的每一行計算等級。

將相同的等級分配給分區中具有相同值的行。第一行的等級為1。在RANK()函數中,等級可能不連續,因為它將重複的行數添加到重複的等級以計算下一行的等級。

用法:

RANK() OVER (
   [PARTITION BY expression, ]
   ORDER BY expression (ASC | DESC) );

範例-
讓我們創建一個隻有列Name的表geek_demo:



CREATE TABLE geek_demo (Name VARCHAR(10) );

現在,將一些行插入到sales.rank_demo表中:
插入geek_demo(名稱)

VALUES('A'), ('B'), ('B'), ('C'), ('C'), ('D'), ('E');

從geek_demo表中選擇數據:

SELECT * 
FROM sales.geek_demo; 

名稱
A
B
B
C
C
D
E

讓我們使用RANK()為geek_demo表的結果集中的行分配等級:

SELECT Name, 
RANK () OVER (
ORDER BY Name
) AS Rank_no 
FROM geek_demo;

輸出-

名稱 Rank_no
A 1
B 2
B 2
C 4
C 4
D 6
E 7

相關用法


注:本文由純淨天空篩選整理自khushboogoyal499大神的英文原創作品 RANK() Function in SQL Server。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。