问题描述
相信我,这是经典之作,但我不知道如何解决:
这是我的数据源
ID Color Description ----------------------- 10 White MR 10 White DREAM 10 White TURTLENIP
我的预期输出数据如下所示:
ID Color Description ------------------------ 10 White MR,DREAM,TURTLENIP
我使用COALESCE,但此报告似乎不起作用。
P.S从我的情况来看这是一个简单的问题,我的查询很多内部联接将一个表合并到另一个表中。但是我不知道如何合并多行Desc以合并为一行。
解决方法
您要字符串聚合。如果您运行的是SQL Server 2017或更高版本,则可以使用string_agg()
:
select id,string_agg(descr,',') all_descr
from mytable
group by id
请注意,desc
是一种语言关键字(与order by ... desc
中一样),因此不是列名的好选择。我在查询中将其重命名为descr
。