通过SQL Server对每个orderID汇总文章

时间:2018-07-02 14:56:56

标签: sql-server

我有以下内容:

OrderID | Articlenumber|
--------+--------------+
1       | 123          |
2       | 222          |
1       | 799          |
1       | 987          |
2       | 444          |
3       | 212          |
2       | 222          |
1       | 898          |

,我想要以下内容(汇总每个orderID的所有商品编号):

orderID|articelnumber       |
-------+--------------------+
1      |123, 799, 987, 898  |
2      |222, 444, 222       |
3      |212                 |

或:

orderID|articelnumber|articelnumber|articelnumber |articelnumber |
-------+-------------+-------------+--------------+--------------+
1      |123          |799          |987           | 898          |
2      |222          |444          |222           |              |
3      |212          |             |              |              |

我该如何使用SQL Server?每个orderID的文章数是可变的。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您想要这样的东西吗?

;WITH cte AS
(
    SELECT OrderID, Articlenumber
    FROM [YOUR_TABLE]
)
SELECT 
    OrderID,
    STUFF((SELECT ',' + Articlenumber FROM [YOUR_TABLE] WHERE [YOUR_TABLE].OrderID = cte.OrderID FOR XML PATH('')), 1, 1, '') articelnumber
FROM cte
GROUP BY OrderID
ORDER BY 1