当前位置:   article > 正文

sql server 多行数据合并一行显示

sql server 多行数据合并一行

SQL Server 中,可以使用 STUFF 和 FOR XML PATH 进行多行合并成一行。例如,假设有一个表名为 orders ,其中包含订单号和产品名称:

order_idproduct_name
1Product A
1Product B
2Product C
2Product D

以下查询将在 order_id 列上分组,将产品名称合并成一行:

  1. SELECT order_id, STUFF((SELECT ', ' + product_name
  2. FROM orders o2
  3. WHERE o2.order_id = o1.order_id
  4. FOR XML PATH('')), 1, 2, '') AS products
  5. FROM orders o1
  6. GROUP BY order_id

结果如下所示:

order_idproducts
1Product A, Product B
2Product C, Product D

在STUFF函数中,第一个参数指定要插入的位置,第二个参数指定要从第一个参数指定的位置开始删除的字符数,第三个参数指定要插入的新值。在此查询中,使用 FOR XML PATH 将每个产品名称转换为逗号分隔的字符串,然后使用 STUFF 将第一个逗号删除并将所有产品名称合并成一个字符串。最后,使用 GROUP BY 在 order_id 列的基础上进行分组。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/330747
推荐阅读
相关标签
  

闽ICP备14008679号