首页 > 数据库 > mysql教程 > 如何在 SQL Server 中连接多行文本数据?

如何在 SQL Server 中连接多行文本数据?

Mary-Kate Olsen
发布: 2025-01-25 17:57:10
原创
991 人浏览过

How Can I Concatenate Text Data from Multiple Rows in SQL Server?

组合来自多个 SQL Server 行的文本数据:综合指南

许多 SQL Server 用户需要将多行文本数据组合成单个字符串。这对于报告生成、数据合并和基于字符串的计算非常有用。

想象一张包含姓名列表的表格:

<code>Peter
Paul
Mary</code>
登录后复制

目标是创建一个以逗号分隔的字符串:Peter, Paul, Mary

方法 1:对于 SQL Server 2017 及更高版本 (STRING_AGG)

SQL Server 2017 和 Azure SQL 数据库提供了高效的STRING_AGG功能:

<code class="language-sql">SELECT STRING_AGG(Name, ', ') AS ConcatenatedNames
FROM TableName;</code>
登录后复制

方法 2:XML 解析(适用于较旧的 SQL Server 版本)

对于早期的 SQL Server 版本,XML 解析提供了解决方案:

<code class="language-sql">SELECT
    LEFT(
        (
            SELECT Name + ',' AS [text()]
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)'),
        LEN((
            SELECT Name + ',' AS [text()]
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)')) - 1
    ) AS ConcatenatedNames
FROM TableName;</code>
登录后复制

方法3:使用STUFF函数

STUFF 函数提供了另一种方法:

<code class="language-sql">SELECT
    STUFF(
        (
            SELECT ',' + Name
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)'),
        1, 1, ''
    ) AS ConcatenatedNames
FROM TableName;</code>
登录后复制

这些方法可以有效地连接 SQL Server 中多行的文本数据,从而简化数据操作和聚合。 选择适合您的 SQL Server 版本的方法。

以上是如何在 SQL Server 中连接多行文本数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

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