当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 187887提问 提问时间:2023-11-18 15:47:43阅读次数: 87

最佳答案 问答题库878位专家为你答疑解惑

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

order_idproduct_name1Product A1Product B2Product C2Product D

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

SELECT order_id, STUFF((SELECT ', ' + product_nameFROM orders o2WHERE o2.order_id = o1.order_idFOR XML PATH('')), 1, 2, '') AS products
FROM orders o1
GROUP BY order_id

结果如下所示:

order_idproducts1Product A, Product B2Product C, Product D

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

查看全文

99%的人还看了

相似问题

猜你感兴趣

版权申明

本文"sql server 多行数据合并一行显示":http://eshow365.cn/6-38476-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!