首页 > 数据库 > mysql教程 > 如何在 SQL Server 中检索带有逗号分隔值的聚合结果?

如何在 SQL Server 中检索带有逗号分隔值的聚合结果?

DDD
发布: 2025-01-07 20:07:39
原创
585 人浏览过

How to Retrieve Aggregated Results with Comma-Separated Values in SQL Server?

在 SQL Server 中使用逗号分隔符检索分组列的聚合结果

在 SQL Server 中,可以使用 FOR XML PATH 结构来检索带有逗号分隔符以及分组列的聚合结果。请考虑以下示例:

<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 结构为每个组(由 ID 列表示)的 Value 列生成一个逗号分隔的值列表。
  • STUFF 函数删除聚合列表开头的 ', '。
  • .value('.', 'NVARCHAR(MAX)') 将XML结果转换为NVARCHAR(MAX)类型,避免潜在的错误。

示例数据和预期结果:

ID Value
1 a
1 b
2 c

预期输出:

ID Values
1 a,b
2 c

其他示例:

有关在 SQL Server 中使用逗号分隔结果进行分组和聚合的更多参考,请考虑以下示例:

This revised answer improves the SQL query by explicitly converting the XML output to a string using .value('.', 'NVARCHAR(MAX)'), preventing potential errors. The explanation also remains clear and concise.

以上是如何在 SQL Server 中检索带有逗号分隔值的聚合结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

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