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)
私のひどい英語で申し訳ありませんが、私の主張を説明したことを願っています