关于sql:多行到一个以逗号分隔的值

Multiple rows to one comma-separated value

本问题已经有最佳答案,请猛点这里访问。

我想在SQL Server中创建一个表值函数,我想以逗号分隔的值返回数据。

例如表:tbl

1
2
3
4
5
6
ID | VALUE
---+-------
 1 | 100
 1 | 200
 1 | 300    
 1 | 400

现在,当我使用函数Func1(value)执行查询时

1
2
3
SELECT Func1(VALUE)
FROM tbl
WHERE ID = 1

我想要的输出是:100,200,300,400


试验日期P></

1
2
DECLARE @Table1 TABLE(ID INT, VALUE INT)
INSERT INTO @Table1 VALUES (1,100),(1,200),(1,300),(1,400)

查询P></

1
2
3
4
5
6
7
8
SELECT  ID
       ,STUFF((SELECT ', ' + CAST(VALUE AS VARCHAR(10)) [text()]
         FROM @Table1
         WHERE ID = t.ID
         FOR XML PATH(''), TYPE)
        .value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
FROM @Table1 t
GROUP BY ID

查询的结果集P></

1
2
3
4
5
╔════╦═════════════════════╗
║ ID ║     List_Output     ║
╠════╬═════════════════════╣
║  1 ║  100, 200, 300, 400
╚════╩═════════════════════╝