这个问题在这里已经有了答案:
8年前关闭。
WM_CONCAT 的 SQL Server 等效项是什么?
最佳答案
您没有相应的功能,但您仍然可以模拟(使用 CROSS APPLY
和 FOR 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/