我在 SQL Server 2005 中有一个问题:
假设我有表PLAYER
( string player, int score, bool Active
) 和这个查询:
SELECT PLAYER.player AS NAME,
PLAYER.score AS SCORE,
POSITION = CASE WHEN PLAYER.Active THEN RANK()OVER(ORDER BY score desc) else NULL end
from PLAYER
问题是当玩家不活跃时,生成的位置不是连续的。
例如 :
JOHN,10000,1
PETER,5000,NULL (NOT ACTIVE)
CHARLES,2500,3 (SHOULD HAVE POSITION 2, NOT 3)
对不起我糟糕的英语,我希望我已经解释了我的观点