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

And*_*lin 1 sql t-sql sql-server legacy

我使用 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
Run Code Online (Sandbox Code Playgroud)

got*_*tqn 6

尝试这个:

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);
Run Code Online (Sandbox Code Playgroud)