T-SQL 连接并将多行分组为一行

Big*_*IWT 3 t-sql sql-server

我正在寻找一种分组方式,同时还将行连接成逗号分隔的字符串。例子:

Name            Place
Steve Jones     New York
Steve Jones     Washington
Albert Smith    Miami
Albert Smith    Denver
Run Code Online (Sandbox Code Playgroud)

到 ...

Steve Jones    New York, Washington
Albert Smith   Miami, Denver
Run Code Online (Sandbox Code Playgroud)

不胜感激

Eri*_*ric 5

如果您使用 SQL Server 2008 及更高版本,则可以使用 STUFF 和 XML PATH 来获得您想要的结果。

SELECT DISTINCT Name
    , STUFF((
        SELECT ',' + Place
        FROM YourTable t1
        where t1.Name = t2.Name
        FOR XML PATH('')
    ), 1, 1, '') AS Places
FROM YourTable t2
Run Code Online (Sandbox Code Playgroud)