string_agg
SQL Server 的 string_agg
函数于 2017 年推出,简化了字符串连接。 然而,对于旧版本,我们需要替代方法。本文演示了一种实现类似结果的方法。
目标是复制此查询的功能:
<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id FROM Table t;</code>
这使用逗号作为分隔符连接“Table”表中的“id”列值。
2017 年之前的 SQL Server 缺少 string_agg
。 该解决方案利用FOR XML PATH
方法:
<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX)) FROM Table t FOR XML PATH('')), 1, 1, '');</code>
这巧妙地构造了一个逗号分隔的字符串。 FOR XML PATH('')
生成 XML 表示形式,有效创建逗号分隔列表。 STUFF()
然后删除前导逗号。 这有效地模仿了 string_agg
行为。
此解决方法为旧版 SQL Server 中的字符串连接提供了实用的解决方案,镜像了新版 string_agg
函数的功能。
以上是如何复制SQL Server 2017年之前版本的`string_agg`函数?的详细内容。更多信息请关注PHP中文网其他相关文章!