免责声明:这可能是一个微不足道的错误。
要解决此链接中的查询,请执行以下操作:
你能用一个名为 sound 的列返回结果吗 人类的"说话",狗的"吠叫",猫的"喵">
?
我需要写一个具有多种可能性的CASE
。
以下语法有什么问题?
SELECT *
CASE
WHEN species='human' THEN 'talk'
WHEN species='dog' THEN 'bark'
WHEN species='cat' THEN 'meow'
END AS sound
FROM friends_of_pickles
;
我仔细检查了阅读这个问题的语法栏,对我来说似乎是正确的?
错误在哪里?
提前非常感谢!
好吧,您在*
之后缺少一个逗号:
SELECT *,
(CASE WHEN species = 'human' THEN 'talk'
WHEN species = 'dog' THEN 'bark'
WHEN species = 'cat' THEN 'meow'
END) AS sound
FROM friends_of_pickles;
但是,某些数据库不允许与其他列*
。 因此,需要合格的*
:
SELECT fop.*,
(CASE WHEN species = 'human' THEN 'talk'
WHEN species = 'dog' THEN 'bark'
WHEN species = 'cat' THEN 'meow'
END) AS sound
FROM friends_of_pickles fop;
老实说,我一般推荐一个合格的列名(和*
(。