Concat列值以逗号作为分隔符

时间:2016-03-23 01:18:02

标签: sql sql-server sql-server-2008

我试图找出以下查询的结果,该结果是关于如何将所有列连接成一个逗号分隔值的单个字符串。值的数量可以是动态的。

SELECT 'Sc4','Sc5','Sc8','Sc7','Sc2'

我希望结果如下:

Sc4,Sc5,Sc8,Sc7,Sc2

我已经尝试过使用东西,但确实设法连接字符串但无法在其间插入逗号。

以下是我的尝试

SELECT Stuff((SELECT 'Sc4','Sc5','Sc8','Sc7','Sc2' FOR XML PATH('')), 2, 0, '');

更新

我想重新解释一下我的问题,有什么方法可以将下面显示的内容转换为csv

Result

2 个答案:

答案 0 :(得分:1)

我假设Sc4,Sc5等是您的列名而不是字符串常量?

SELECT Stuff(
             (
                SELECT ',' + Sc4 + ',' + Sc5 + ',' + Sc8 + ',' + Sc7 
                     + ',' + Sc2 
                FROM   yourtable
                FOR XML PATH('')
              ), 1, 1, '');

答案 1 :(得分:0)

尝试连接,如

SELECT 'Sc4' + ',' + 'Sc5' + ',' + 'Sc8' + ',' + 'Sc7' + ',' + 'Sc2'