ROW_NUMBER
和DENSE_RANK
是窗口函數,用于對查詢結果集中的行進行排名操作。它們的主要區別在于處理相同排名的行時的方式。
ROW_NUMBER
:ROW_NUMBER
為每行分配一個唯一的順序號。ROW_NUMBER
會為它們分配不同的排名值。DENSE_RANK
:DENSE_RANK
會為它們分配相同的排名值。DENSE_RANK
會為它們分配相同的排名值。因此,當需要確保每個行都有唯一的排名值時,可以使用ROW_NUMBER
;而當希望相同排名的行具有相同的排名值時,可以使用DENSE_RANK
。