4

申し訳ありませんが、私の英語は最高ではありません。

「orderby」で「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 に答える