发件人:https://www.w3resource.com/sql-exercises/sql-retrieve-exercise-24.php
编写一个sql查询,根据排序的主题和获胜者姓名查找1970个获胜者的所有详细信息;但名单上最后还是包括了经济学和化学。
SELECT *
FROM nobel_win
WHERE year=1970
ORDER BY
CASE
WHEN subject IN ('Economics','Chemistry') THEN 1
ELSE 0
END ASC,
subject,
winner;
如果经济学和化学列在主题栏中,这里的情况似乎又是如此。这里哪一部分规定经济学和化学应该放在“结尾”处?
1条答案
按热度按时间7jmck4yq1#
这里包含的case表达式将计算为
1
当Subject
是“经济学”还是“化学”。否则将返回0。它作为第一个排序项包含在sql查询中,将在中进行排序
Ascending
命令。对于0
以及1
如果可能的话,这将按以下顺序对它们进行排序:0
首先,然后1
.换句话说,第一类是:
不是经济学或化学的所有行
所有科目为经济学或化学的行
在此之后,它按
subject
以及winner
(因此,作为一个副作用,在列表的最后,化学总是排在经济学之前)。