我在脑海中浮现出这个主意。我尝试对其进行测试,但现在有点卡住了。因此,例如,有一个包含3列的表:
每个项目唯一的第一列
决定该项目最终将位于何处的第二列,因此可以有重复项
具有项目描述的第三列
如果这是可量化的,我相信您可以使用总计。但是,如果您希望不显示重复项,而只显示一个数字,然后根据第二列将所有字符串加在一起,该怎么办?
因此输出现在将如下所示:
我想在基于Microsoft SQL Server的SQL中执行此操作。因此,如果数据刷新,它将仅输出此。
任何事情都会有所帮助,谢谢大家!
如果正在运行SQL Server 2017,则可以使用聚合函数string_agg()
:
select column2 duplicates, string_agg(column3, ',') within group(order by column1) str
from mytable
group by column2
在早期版本中,可以如下使用for xml path
;
select
column2 duplicates,
stuff(
(
select ',' + t1.column3
from mytable t1
where t1.column2 = t.column2
for xml path(''), type
).value('.', 'nvarchar(max)'), 1, 1, ''
) str
from mytable t
group by column2