ROW_NUMBER()
将select查询到的数据进行排序,当存在相同数值时,ROW_NUMBER()会依次进行排序,使得序号各不相同。
select ROW_NUMBER() OVER(order by XXX desc) number
RANK()
将select查询到的数据进行排序,当存在相同数值时,Rank()的排名是一样的。
select RANK() OVER(order by XXX desc) number
DENSE_RANK()
DENSE_RANK()排名具有连续性,在排名时是连续的,而RANK()是跳跃排名(即前两名同分排第一的情况下,第三位使用DENSE_RANK()的排名为2,使用RANK()的排名为3)。
select DENSE_RANK() OVER(order by XXX desc) number