首页 >数据库 >mysql教程 >如何复制SQL Server 2017年之前版本的`string_agg`函数?

如何复制SQL Server 2017年之前版本的`string_agg`函数?

Patricia Arquette
Patricia Arquette原创
2025-01-20 19:50:09589浏览

How Can I Replicate SQL Server's `string_agg` Function in Versions Before 2017?

在 2017 年之前的 SQL Server 中模拟 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn