多种情况-语法

时间:2018-10-07 11:32:32

标签: sql

免责声明:这可能是一个小错误。


要解决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,对我来说似乎正确吗?

哪里出了错?

非常感谢您!

1 个答案:

答案 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;

说实话,我一般建议使用限定列名称(和*)。