如何在 MS SQL Server 2008 中替换 STRING_AGG 和 CONCAT?
How to replace STRING_AGG and CONCAT in MS SQL Server 2008?
我使用的是MS SQL Server 2008,这个服务器版本不支持一些有用的功能,比如CONCAT
和STRING_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);
我使用的是MS SQL Server 2008,这个服务器版本不支持一些有用的功能,比如CONCAT
和STRING_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);