将多行组合成单个逗号分隔字段的 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中文网其他相关文章!