gpt4 book ai didi

mysql - 为什么我们使用案例 0 和 1?

转载 作者:行者123 更新时间:2023-11-29 04:04:59 24 4
gpt4 key购买 nike

编写一个 SQL 查询,按主题和获奖者姓名的顺序查找 1970 年获奖者的所有详细信息;但列表最后包含主题经济学和化学。

YEAR SUBJECT                   WINNER                                        COUNTRY                CATEGORY
---- ------------------------- --------------------------------------------- ------------------------- ------------
1970 Physics Hannes Alfven Sweden Scientist
1970 Physics Louis Neel France Scientist
1970 Chemistry Luis Federico Leloir France Scientist
1970 Physiology Ulf von Euler Sweden Scientist
1970 Physiology Bernard Katz Germany Scientist
1970 Literature Aleksandr Solzhenitsyn Russia Linguist
1970 Economics Paul Samuelson USA Economist
1970 Physiology Julius Axelrod USA Scientist
1971 Physics Dennis Gabor Hungary Scientist
1971 Chemistry Gerhard Herzberg Germany Scientist
1971 Peace Willy Brandt Germany Chancellor
1971 Literature Pablo Neruda Chile Linguist
1971 Economics Simon Kuznets Russia Economist
1978 Peace Anwar al-Sadat Egypt President
1978 Peace Menachem Begin Israel Prime Minister
1987 Chemistry Donald J. Cram USA Scientist
1987 Chemistry Jean-Marie Lehn France Scientist
1987 Physiology Susumu Tonegawa Japan Scientist
1994 Economics Reinhard Selten Germany Economist
1994 Peace Yitzhak Rabin Israel Prime Minister
1987 Physics Johannes Georg Bednorz Germany Scientist
1987 Literature Joseph Brodsky Russia Linguist
1987 Economics Robert Solow USA Economist
1994 Literature Kenzaburo Oe Japan Linguist

回答:

SELECT *
FROM nobel_win
WHERE year=1970
ORDER BY
CASE
WHEN subject IN ('Economics','Chemistry') THEN 1
ELSE 0
END ASC,
subject,
winner;

有人可以解释该答案中的caseorder by 逻辑吗?

最佳答案

要求说经济学和化学必须最后。所以我们必须使用 ORDER BY控制结果的顺序。

subject IN ('Economics','Chemistry')是真的,CASE表达式返回 1 .否则它是 0 .自 0低于1 ,我们按升序排序,这是 0 的行将放在第一位。

关于mysql - 为什么我们使用案例 0 和 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51252302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com