将表的特定列中存在的所有值连接到单个值

时间:2013-11-18 11:47:54

标签: sql sql-server

我有一个包含三列的表格。 我想编写一个查询,该查询将第3行中存在的所有值合并,并将其合并为以逗号分隔的单个值。

前 -

Table A
+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
|    1 | A    | AB   |
|    2 | B    | BC   |
|    3 | C    | CD   |
|    4 | D    | DE   |
|    5 | E    | EF   |
|    6 | F    | FG   |
+------+------+------+

我想要的结果:

AB,BC,CD,DE,EF,FG

PS:我正在使用MS SQL Server 2008

1 个答案:

答案 0 :(得分:0)

您可以使用存储过程中的游标执行此操作。我确信有更优雅的方法可以根据select语句返回连接字符串

declare col3Cursor CURSOR FOR SELECT col3 FROM A
    open col3Cursor
    fetch next from col3Cursor into @tempVar
    while @@FETCH_STATUS = 0
    begin
returnVar = returnVar + ',' + @tempVar
end
close col3Cursor

return returnVar