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

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

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

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

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

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

这是一个 SQL Server 解决方案:

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
登录后复制

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

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

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