0

次のように、ORDER BY 句を使用して CASE ステートメントに NEWID() (結果をランダムな順序で返すことができるようにするため) を含める方法を見つけようとしています。

ORDER BY CASE WHEN @RankingMethod = 1 THEN intFoo ELSE NEWID() END DESC

「オペランド型の衝突: uniqueidentifier は int と互換性がありません」がスローされるため、明らかにこれは機能しません。

この ORDER BY を作成して、ランダムに並べ替えるか、指定した列で並べ替える方法はありますか?

4

1 に答える 1

4

あなたができる

ORDER BY CASE WHEN @RankingMethod = 1 THEN intFoo ELSE -1 END DESC, newid()

必要に応じて、代わりに別の「魔法の値」を選択します-1

于 2012-05-03T17:02:53.257 に答える