如何在主select语句中将第二个select语句结果转换为CSV String?

时间:2010-08-08 16:34:58

标签: sql mysql sql-server tsql

如何在主select语句中将第二个select语句结果转换为CSV String?

假设遵循SQL语句:

SELECT A1,A2, (SELECT aCol FROM Table2) as A3
FROM Table1

现在,我想将 SELECT aCol FROM Table2 的结果转换为显示在A3字段的CSV字符串。 如:

A1Value | A2Value | A3Value1, A3Value2, A3Value3

感谢。


更新:

Solution for MySql

1 个答案:

答案 0 :(得分:3)

您知道没有相关性,您将为返回的每一行获得相同的逗号分隔列表吗?

对于MySQL

使用GROUP_CONCAT功能:

SELECT t.a1,
            t.a2,
            (SELECT GROUP_CONCAT(t2.acol)
                FROM TABLE_2 t2) AS A3
   FROM TABLE_1 t

假设SQL Server 2005 +

使用:

SELECT t.a1,
            t.a2,
            STUFF(ISNULL(SELECT ', '+x.acol                
                                   FROM TABLE_2 x 
                            GROUP BY x.acol             
                              FOR XML PATH ('')),''),1,2,'')
  FROM TABLE_1 t