SQL 将 2 个表合并在一列中,以逗号分隔
Posted
技术标签:
【中文标题】SQL 将 2 个表合并在一列中,以逗号分隔【英文标题】:SQL combine 2 tables in one column sepataring by comma 【发布时间】: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 标签,因为它看起来像“奇怪的人”。 【参考方案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 个这样的列,听起来您的数据模型有问题。这些值可能应该在行中。以上是关于SQL 将 2 个表合并在一列中,以逗号分隔的主要内容,如果未能解决你的问题,请参考以下文章