ORDER BY CASE子句如何在以下代码中起作用?

时间:2016-11-17 16:18:43

标签: mysql sql-order-by

这段代码如何运作?

ORDER BY 
  CASE WHEN subject IN ('Chemistry','Physics') THEN 1 ELSE 0 END, 
  subject, 
  winner;

3 个答案:

答案 0 :(得分:0)

按照案件的结果,然后按主题,然后获胜者命令。

按照主题和获胜者的顺序,首先出现不是化学或物理学的行。然后是化学,然后是物理学。

试试吧。

答案 1 :(得分:0)

首先检查subjet是化学还是物理。 如果确实如此,排序分数将为1.

如果主题不包含任何“化学”或“物理”,则分数将为0.

之后,它会按分数对结果进行排序,因此包含化学或物理的结果将首先出现在那些不包含的结果之后。

答案 2 :(得分:0)

我认为这就是你想要的SELECT winner, subject FROM nobel WHERE yr = '1984' AND subject IN ('Chemistry','Physics') ORDER BY CASE;