首页 > 解决方案 > SQL 将 2 个表合并在一列中,以逗号分隔

问题描述

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

在此处输入图像描述

在示例中:

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

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

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

在此处输入图像描述

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

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

标签: mysqlsqlmysql-workbench

解决方案


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

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

推荐阅读