在 SQL Server 中有效地将多行组合成单个逗号分隔的字符串
SQL Server 通常需要将多行数据聚合到一个以逗号分隔的字符串中,尤其是在对结果进行分组时。 这是报告和数据呈现的常见任务。 实现此目的的一个强大方法是利用 FOR XML PATH
构造。
让我们检查一个包含“ID”和“值”列的表:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
以下 SQL 查询有效地将每个唯一 Value
的 ID
条目连接成逗号分隔的字符串:
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
此查询使用带有 FOR XML PATH('')
的子查询来连接值。 .value('.', 'NVARCHAR(MAX)')
方法将 XML 结果转换为字符串。 STUFF
删除前导逗号和空格。
输出将是:
ID | Values |
---|---|
1 | a, b |
2 | c |
这种方法提供了一种干净而有效的方法来在 SQL Server 中生成逗号分隔的聚合值,从而增强数据的可读性和可用性。
以上是如何在 SQL Server 中将多行连接成单个逗号分隔的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!