在SQL中,DENSE_RANK和RANK是用来对结果集中的行进行排名的两个函数。它们的区别在于处理相同排名的情况上。
DENSE_RANK函数会给相同排名的行分配连续的排名,即如果有两行的得分相同,它们会被分配相同的排名,而后续行的排名会按照这个规则依次递增。比如,如果有两行得分都是第一名,那么它们的排名将都是1,而下一行的排名将是2。
RANK函数会给相同排名的行分配相同的排名,即如果有两行的得分相同,它们会被分配相同的排名,而后续行的排名会按照这个规则跳过相同排名的行数继续递增。比如,如果有两行得分都是第一名,那么它们的排名将都是1,而下一行的排名将是3。
总的来说,DENSE_RANK会得到更加连续的排名序列,而RANK会根据相同排名的行数跳过相应的排名。