【问题标题】:SELECT using 'CASE' in SQL在 SQL 中使用“CASE”进行选择
【发布时间】:2014-02-14 06:53:55
【问题描述】:

我有一组一对一的映射 A -> apple, B-> Banana 等等.. 我的表有一列,其值为 A、B、C..

现在我正在尝试使用一个 select 语句,它会给我直接的结果

SELECT 
  CASE 
     WHEN FRUIT = 'A' THEN FRUIT ='APPLE' 
     ELSE WHEN FRUIT ='B' THEN FRUIT ='BANANA'     
 FROM FRUIT_TABLE;

但是我没有得到正确的结果,请帮助我..

【问题讨论】:

  • 你是不是在案子的最后漏掉了一个结尾和一个别名
  • 这是基本的 SQL 语法,您可以轻松地通过 Google 搜索大约一百万个示例。此外,您可能应该在此处使用参考/翻译表和 JOIN 而不是 CASE 表达式。
  • @DanBracuk AFAIK 它没有。
  • 我认为您缺少“结束”。请粘贴你得到的结果

标签: sql select case


【解决方案1】:

改为:

SELECT 
  CASE 
    WHEN FRUIT = 'A' THEN 'APPLE' 
    WHEN FRUIT = 'B' THEN 'BANANA'     
  END
FROM FRUIT_TABLE;

【讨论】:

  • 这不会有列名。
  • 不是要求
【解决方案2】:

试试这个。

SELECT 
  CASE 
     WHEN FRUIT = 'A' THEN 'APPLE'
     WHEN FRUIT = 'B' THEN 'BANANA'
     ELSE 'UNKNOWN FRUIT'
  END AS FRUIT
FROM FRUIT_TABLE;

【讨论】:

    【解决方案3】:

    哪个平台?

    SELECT 
      CASE 
        WHEN FRUIT = 'A' THEN 'APPLE' 
        ELSE FRUIT ='B' THEN 'BANANA' 
       END AS FRUIT     
    FROM FRUIT_TABLE;
    

    【讨论】:

      【解决方案4】:

      这只是case语句的语法,看起来是这样的。

      SELECT 
        CASE 
          WHEN FRUIT = 'A' THEN 'APPLE' 
          WHEN FRUIT = 'B' THEN 'BANANA'     
        END AS FRUIT
      FROM FRUIT_TABLE;
      

      作为提醒,请记住;没有执行赋值,值成为列内容。 (如果你想将它分配给一个变量,你可以把它放在 CASE 语句之前)。

      【讨论】:

      • 这也可以写成CASE FRUIT WHEN 'A'...
      • 由于区分大小写和宾果游戏,我不得不转换为 Upper。
      猜你喜欢
      • 2021-11-22
      • 2015-02-11
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多