4

对不起,我的英语不是最好的。

是否可以在“order by”中做一个“where”。

例子 :

ORDER BY 
SUM(points), 
SUM(points) WHERE type = 1, 
SUM(goal), 
SUM(goal) WHERE type = 1

所以首先我们按点排序。

如果有人有相同数量的SUM(points),那么我们按 排序SUM(points) where type = 1

如果任何人有相同数量的SUM(points)和相同数量的SUM(points) where type = 1,那么我们排序后SUM(goal)

如果任何人在所有 3 中都有相同的,那么它必须按SUM(goal) where type = 1.

4

2 回答 2

4
SUM(CASE WHEN type=1 THEN points ELSE 0 END)

等等

如果您首先想要“最佳”,您当然应该添加DESC所有订单条件;)

sqlFiddle

于 2012-09-04T19:00:58.107 回答
0
ORDER BY
  SUM(points),
  SUM(CASE WHEN type = 1 THEN points ELSE 0 END),
  SUM(goal),
  SUM(CASE WHEN type = 1 THEN goal ELSE 0 END)
于 2012-09-04T19:02:30.510 回答