首页 > 数据库 > mysql教程 > 如何将多个 SQL 行连接到单个逗号分隔列中?

如何将多个 SQL 行连接到单个逗号分隔列中?

Patricia Arquette
发布: 2025-01-21 06:51:12
原创
984 人浏览过

How to Concatenate Multiple SQL Rows into a Single Comma-Delimited Column?

将多行组合成单个逗号分隔字段的 SQL 技术

将多行数据聚合到一列中,并用逗号分隔,是数据操作中的常见要求。 本指南演示如何使用 SQL 实现这种串联,重点关注 Microsoft SQL Server 2005 及更高版本。

这是一个 SQL Server 解决方案:

<code class="language-sql">SELECT t.TicketID,
       STUFF(ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') AS ConcatenatedPersons
  FROM @Tickets t
GROUP BY t.TicketID</code>
登录后复制

此方法采用 STUFF 函数有效地从连接字符串中删除前导逗号。 嵌套查询利用 FOR XML PATH 从与每个 Person 关联的各个 TicketID 值创建一个逗号分隔的列表。 ISNULL 函数处理没有人与给定票证 ID 关联的情况。 结果是一个单列 (ConcatenatedPersons),其中包含每张票的以逗号分隔的人员列表。 此方法提供了一种干净而有效的方法来在 SQL Server 中实现所需的串联。 将此技术适应您的特定表和列名称以获得最佳结果。

以上是如何将多个 SQL 行连接到单个逗号分隔列中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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