sqlserver group_concat
时间: 2023-09-09 14:10:13 浏览: 143
在 SQL Server 中,没有内置的 `GROUP_CONCAT` 函数。但是,可以使用 `FOR XML PATH` 语句来实现类似 `GROUP_CONCAT` 的功能。
例如,假设有一个名为 `orders` 的表,其中包含以下数据:
```
order_id | customer_id | product
--------- | ----------- | -------
1 | 100 | A
2 | 100 | B
3 | 101 | C
4 | 102 | D
5 | 102 | E
```
如果想要按照 `customer_id` 分组,并将每个分组中的 `product` 字段连接成一个逗号分隔的字符串,可以使用以下查询:
```sql
SELECT customer_id,
STUFF((SELECT ', ' + product
FROM orders o2
WHERE o1.customer_id = o2.customer_id
FOR XML PATH('')), 1, 2, '') AS products
FROM orders o1
GROUP BY customer_id
```
这将返回以下结果:
```
customer_id | products
----------- | ----------
100 | A, B
101 | C
102 | D, E
```
在这个查询中,内部的子查询使用 `FOR XML PATH('')` 将每个分组中的 `product` 字段连接成一个 XML 字符串。然后,使用 `STUFF` 函数将逗号和空格替换为一个空字符串,从而生成最终的逗号分隔的字符串。
阅读全文
相关推荐


















