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 回答