ROW_NUMBER
和 RANK
都是用于在 SQL 查詢結果中對行進行排序的窗口函數。
主要區別在于:
ROW_NUMBER
會為每一行分配一個唯一的連續整數值,而 RANK
則會為具有相同排序值的行分配相同的排名,然后跳過下一個排名值。ROW_NUMBER
會為每個并列行分配不同的排名,而 RANK
會跳過相同排名的下一個值,因此可能會出現排名不連續的情況。舉例來說,如果有如下排序結果:
1. A
2. B
2. C
4. D
使用 ROW_NUMBER
會得到:
1. A
2. B
3. C
4. D
而使用 RANK
會得到:
1. A
2. B
2. C
4. D