我对这些之间的差异感到困惑。运行以下 SQL 会得到两个相同的结果集。有人可以解释一下差异吗?
SELECT ID, [Description], RANK() OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank' FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
原文由 dotNET Hobbiest 发布,翻译遵循 CC BY-SA 4.0 许可协议
ROW_NUMBER : 为从 1 开始的每一行返回一个唯一编号。对于具有重复值的行,编号是任意分配的。
Rank : 为从 1 开始的每一行分配一个唯一编号,但具有重复值的行除外,在这种情况下,分配相同的排名,并且每个重复排名的序列中都会出现一个间隙。