在SQL Server的列中输出以逗号分隔的列表

时间:2012-10-24 15:59:03

标签: sql-server csv string-aggregation

  

可能重复:
  Simulating group_concat MySQL function in SQL Server 2005?

实现这一目标的最佳方法是什么?编辑:在MSSQL 2005中

表格

a   |  b
------------
x   |  1
x   |  4
y   |  6
y   |  1

查询:

SELECT ? FROM Table

以便输出为:

a   | ListOfB
------------
x   | 1, 4
y   | 6, 1

1 个答案:

答案 0 :(得分:9)

在SQL Server中,您可以使用FOR XML PATH

select distinct a,
  stuff(
  (
    select ','+ cast(b as varchar(10)) 
    from table1 t2 
    where t1.a = t2.a for XML path('')
  ),1,1,'') ListOfB
from table1 t1

请参阅SQL Fiddle with Demo