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

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

Patricia Arquette
Patricia Arquette原创
2025-01-21 06:51:12985浏览

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

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