ORDER BY CASE 子句在以下代码中如何工作?
How does the ORDER BY CASE Clause Work in the following Code?
这部分代码是如何工作的?
ORDER BY
CASE WHEN subject IN ('Chemistry','Physics') THEN 1 ELSE 0 END,
subject,
winner;
它按案件结果排序,然后按主题,然后是获胜者。
非化学或物理的行排在最前面,按主题和获胜者的顺序排列。然后是化学,然后是物理。
试试吧。
首先它检查主题是化学还是物理。
如果是,排序分数将为 1。
如果主题不包含 "Chemistry" 或 "Physics" 中的任何一项,则分数将为 0。
之后它按分数对结果进行排序,因此包含化学或物理的结果将排在第一位,然后是不包含的结果。
我想这就是你想要的SELECT winner, subject FROM nobel WHERE yr = '1984' AND subject IN ('Chemistry','Physics') ORDER BY CASE;
这部分代码是如何工作的?
ORDER BY
CASE WHEN subject IN ('Chemistry','Physics') THEN 1 ELSE 0 END,
subject,
winner;
它按案件结果排序,然后按主题,然后是获胜者。
非化学或物理的行排在最前面,按主题和获胜者的顺序排列。然后是化学,然后是物理。
试试吧。
首先它检查主题是化学还是物理。 如果是,排序分数将为 1。
如果主题不包含 "Chemistry" 或 "Physics" 中的任何一项,则分数将为 0。
之后它按分数对结果进行排序,因此包含化学或物理的结果将排在第一位,然后是不包含的结果。
我想这就是你想要的SELECT winner, subject FROM nobel WHERE yr = '1984' AND subject IN ('Chemistry','Physics') ORDER BY CASE;