免责声明:这可能是一个小错误。
要解决this link处的查询:
您可以使用名为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
;
我仔细检查了语法栏,显示this question,对我来说似乎正确吗?
哪里出了错?
非常感谢您!
答案 0 :(得分:2)
好吧,您在*
之后缺少逗号:
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;
说实话,我一般建议使用限定列名称(和*
)。