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

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

Patricia Arquette
发布: 2025-01-20 19:50:09
原创
507 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板