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 |
相關用法
- SQL Server STUFF()用法及代碼示例
- SQL Server SIN()、COS()用法及代碼示例
- SQL Server NTILE()用法及代碼示例
- SQL Server STR()用法及代碼示例
- SQL Server UNICODE()用法及代碼示例
- SQL Server SUBSTRING()用法及代碼示例
- SQL Server RTRIM()用法及代碼示例
- SQL Server FLOOR()、CEILING()用法及代碼示例
- SQL Server TAN()、COT()用法及代碼示例
- SQL Server DEGREES()、RADIANS()用法及代碼示例
- SQL Server ATN2()用法及代碼示例
- SQL Server LOG10()用法及代碼示例
- SQL Server LOG()用法及代碼示例
- SQL Server ASCII()用法及代碼示例
- SQL Server DIFFERENCE()用法及代碼示例
- SQL Server IIF()用法及代碼示例
注:本文由純淨天空篩選整理自khushboogoyal499大神的英文原創作品 RANK() Function in SQL Server。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。