【问题标题】:Multiple CASEs - syntax多个 CASE - 语法
【发布时间】:2018-10-07 11:32:32
【问题描述】:

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


解决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 的语法栏,对我来说似乎是正确的?

错在哪里?

非常感谢您非常提前!

【问题讨论】:

    标签: sql


    【解决方案1】:

    嗯,* 后面少了一个逗号:

    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;
    

    说实话,我一般推荐一个合格的列名(和*s)。

    【讨论】:

    • 并且case子句可以缩短为CASE species WHEN 'human' THEN 'talk' WHEN 'dog' THEN 'bark' WHEN 'cat' THEN 'meow' END AS sound
    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 2014-03-31
    • 2022-06-21
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多