【问题标题】:SQL function to concatenate Boolean variables连接布尔变量的 SQL 函数
【发布时间】:2021-07-11 11:21:04
【问题描述】:

我需要创建一个连接 3 个布尔变量的列:

  • 开胃菜字符(1)不为空:是/否
  • 主字符 (1) 不为空:是/否
  • 甜点 char(1)not null: Y/N

这样,如果指示 Y,值将显示在单个单元格中。

例如,如果主菜和甜点都显示为 Y,则它应在单元格中显示为“主甜点”:Example

我见过类似的解决方案,例如this,但答案返回重复的行,不幸的是我的情况不允许重复。

谢谢!

【问题讨论】:

  • 请提供样本数据和期望的结果。还要解释为什么concat() 不起作用。此外,您引用的问题是针对 SQL Server 的,并且接受的答案在 MySQL 中的语法不正确。

标签: mysql sql boolean concatenation


【解决方案1】:
SELECT CONCAT(IF(Appetizer='Y', 'Appetizer ', ''),
              CONCAT(IF(Main='Y', 'Main ', ''), IF(Dessert='Y', 'Dessert ', ''))) FROM ...

这将为您提供列的文本。您可能需要修剪它。

【讨论】:

  • 非常感谢!
【解决方案2】:
SELECT CONCAT_WS(' ',
                  CASE WHEN Appetizer='Y' THEN 'Appetizer' END,
                  CASE WHEN Main='Y' THEN 'Main' END,
                  CASE WHEN Dessert='Y' THEN 'Dessert' END) FROM ...

【讨论】:

  • 也非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 2020-08-22
相关资源
最近更新 更多