ROW_NUMBER和DENSE_RANK是窗口函数,用于对查询结果集中的行进行排名操作。它们的主要区别在于处理相同排名的行时的方式。
ROW_NUMBER:ROW_NUMBER为每行分配一个唯一的顺序号。ROW_NUMBER会为它们分配不同的排名值。DENSE_RANK:DENSE_RANK会为它们分配相同的排名值。DENSE_RANK会为它们分配相同的排名值。因此,当需要确保每个行都有唯一的排名值时,可以使用ROW_NUMBER;而当希望相同排名的行具有相同的排名值时,可以使用DENSE_RANK。