Microsoft SQL中的字符串是否有求和函数?

问题描述 投票:0回答:1

我在脑海中浮现出这个主意。我尝试对其进行测试,但现在有点卡住了。因此,例如,有一个包含3列的表:

每个项目唯一的第一列

决定该项目最终将位于何处的第二列,因此可以有重复项

具有项目描述的第三列

如果这是可量化的,我相信您可以使用总计。但是,如果您希望不显示重复项,而只显示一个数字,然后根据第二列将所有字符串加在一起,该怎么办?

enter image description here

因此输出现在将如下所示:

enter image description here

我想在基于Microsoft SQL Server的SQL中执行此操作。因此,如果数据刷新,它将仅输出此。

任何事情都会有所帮助,谢谢大家!

sql excel ms-access
1个回答
0
投票

如果正在运行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
© www.soinside.com 2019 - 2024. All rights reserved.