这个问题在这里已经有了答案:




8年前关闭。






WM_CONCAT 的 SQL Server 等效项是什么?

最佳答案

您没有相应的功能,但您仍然可以模拟(使用 CROSS APPLYFOR XML PATH('') )。例子,

USERID  ADDRESSLINE1
==========================
1       First Street
1       Second Street
2       32th Street
2       24th Street
2       25th Street

将导致
USERID  ADDRESSLIST
============================
1       First Street, Second Street
2       32th Street, 24th Street, 25th Street

使用此查询:
SELECT  a.UserID,
        SUBSTRING(d.Addresses,1, LEN(d.Addresses) - 1) AddressList
FROM
        (
            SELECT DISTINCT UserID
            FROM tableName
        ) a
        CROSS APPLY
        (
            SELECT [AddressLine1] + ', '
            FROM tableName AS B
            WHERE A.UserID = B.UserID
            FOR XML PATH('')
        ) D (Addresses)

SQLFiddle Demo

关于相当于 WM_CONCAT 函数的 SQL Server,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12559551/

10-15 18:13