MSSQL group_concat 的函数
时间: 2023-07-19 15:45:38 浏览: 181
mysql的group_concat函数使用示例
5星 · 资源好评率100%
在 MSSQL 中并没有内置的 `group_concat` 函数,但可以通过以下两种方式实现类似的功能:
1. 使用 `FOR XML PATH` 实现字符串拼接
```sql
SELECT column1, STUFF((
SELECT ',' + column2
FROM table
WHERE column1 = t.column1
FOR XML PATH('')
), 1, 1, '') AS concatenated_column
FROM table t
GROUP BY column1
```
2. 自定义聚合函数实现字符串拼接
首先需要创建一个自定义的聚合函数:
```sql
CREATE FUNCTION dbo.group_concat(@input nvarchar(max), @delimiter nvarchar(10))
RETURNS nvarchar(max)
AS
BEGIN
DECLARE @output nvarchar(max)
SELECT @output = COALESCE(@output + @delimiter, '') + @input
FROM (
SELECT DISTINCT column1, column2
FROM table
) subquery
ORDER BY subquery.column1
RETURN @output
END
```
然后可以使用该函数进行字符串拼接:
```sql
SELECT column1, dbo.group_concat(column2, ',') AS concatenated_column
FROM table
GROUP BY column1
```
阅读全文