【问题标题】:SQL combine 2 tables in one column sepataring by commaSQL 将 2 个表合并在一列中,以逗号分隔
【发布时间】:2021-05-13 13:51:33
【问题描述】:

您好,我的 SQL 查询有问题,我想将 2 个表 5 列组合并用逗号分隔,下面我发布表的外观。

在示例中:

名称:长度,j1:mm,j2:cm,j3:NULL,j4:m

名称:大小,j1:NULL,j2:NULL,j3:NULL,j4:NULL;

查询后的结果我想要这样的:

如果在行中我发现 NULL 我们应该返回“-”

我正在尝试 Concat,但我不知道如何返回 - 如果我找到空白行

【问题讨论】:

  • 我删除了 Oracle 标签,因为它看起来像“奇怪的人”。

标签: mysql sql mysql-workbench


【解决方案1】:

我想你想要coalesce()concat_ws()。像这样的:

select concat_ws(',',
                 coalesce(name, '-'),
                 coalesce(j1, '-'),
                 coalesce(j2, '-'),
                 coalesce(j3, '-'),
                 coalesce(j4, '-')
                )
from t1 left join
     t2
     using (t2_id)

【讨论】:

  • 顺便问一下你知道用n列的方法吗?例如,我有从 1 到 100 的“j”
  • @godislikemyquestionsrets 。 . .只需重复表达式(您可以使用电子表格来创建代码)。如果您有 100 个这样的列,听起来您的数据模型有问题。这些值可能应该在行中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多