如何在 SQL 中获取单行值作为逗号附加文本

How to get single row values as comma appended text in SQL

在 SQL 我的查询结果像

我需要在我的产品名称后附加“,”的结果中避免联系人姓名重复。

请帮忙。

SQL-Server 2017 (Not introduced for earlier versions)

使用字符串聚合函数STRING_AGG()

SELECT first_name+''+last_Name, STRING_AGG(product_name, ', ') AS products
FROM your_table
GROUP BY first_name,last_Name;

根据您需要的输出在 GROUP BY 中添加列。 希望对您有所帮助。

我的上述回答不适用于 SQL-Server 2017 之前的版本。 所以我已经实施了一些其他解决方案,如下所示。

示例 table:your_table

并应用此代码:

select distinct tb2.first_name, 
    substring(
        (
            select ','+tb1.product_name  as [text()]
            from dbo.your_table as tb1
            where tb1.first_name = tb2.first_name
            order by tb1.first_name
            for xml path ('')
        ), 2, 500) [products]
from dbo.your_table tb2;

结果如期而至: