2012-05-03 65 views
0

我想弄清楚如何在ORDER BY子句中使用NEWID()(所以我可以以隨機順序返回結果)在CASE語句中,如下所示:SQL Order by NEWID在CASE語句中

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

顯然,這是不行的,因爲它會拋出「操作數類型衝突:唯一標識符是與詮釋不兼容」

有沒有辦法來構造這個ORDER BY有它要麼隨機排序或通過指定的列?

回答

4

你可以做

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

如果需要,選擇另一個 「神奇值」,而不是-1

+0

完美的,謝謝! – Matt