如何在 MS SQL Server 2008 中替换 STRING_AGG 和 CONCAT?

How to replace STRING_AGG and CONCAT in MS SQL Server 2008?

我使用的是MS SQL Server 2008,这个服务器版本不支持一些有用的功能,比如CONCATSTRING_AGG,但是它们在我的工作中是非常需要的。 我可以使用哪些变体来替换 MS SQL Server 2008 中的这些功能?

重要!我无法将服务器更新到较新的版本。

更好理解的代码:

SELECT Pt.ImagePath, STRING_AGG(Pt.DamageData, '') DamageData 
FROM @PreTable AS Pt 
GROUP BY ImagePath 
ORDER BY DamageData

试试这个:

WITH DataSoruce AS
(
    SELECT DISTINCT ImagePath
    FROM @PreTable
)
SELECT DS.ImagePath
      ,C.DamageData
FROM DataSoruce DS
CROSS APPLY
(
    SELECT '' + Pt.DamageData
    FROM @PreTable P
    WHERE P.ImagePath = DS.ImagePath
    FOR XML PATH('')
) C (DamageData);