【发布时间】:2020-07-31 08:27:06
【问题描述】:
我使用的是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
【问题讨论】:
-
升级到支持的 SQL Server 版本。 2008 完全不受支持,因此升级是迄今为止最好的解决方案。你说你别无选择,但如果这是真的,你应该告诉我们原因;因为几乎没有任何情况下您永远无法升级。
-
STRING_AGG可以通过 gotqn 的回答中的 XML 支持来处理。CONCAT可以通过将所有列类型转换为文本数据类型并“将它们相加”来处理。select concat('abc', '-', 123);等于select 'abc' + '-' + cast(123 as nvarchar(10)); -
ListAGG in SQLSERVER的可能重复
标签: sql sql-server tsql legacy