在子查询中检索SQL Server中的多个行并将它们连接到一个字符串

时间:2014-04-02 20:47:15

标签: sql sql-server

我在子查询中返回多个值并将它们添加到字符串时遇到问题。目前我正在使用:

Select master_key, (select parent_key 
                    from cmpower.dbo.dlnk 
                   where dlnk.parent_key = sbrv_table.masterkey) 
from cmpower.dbo.sbrv_table 

子查询返回多行,我需要将这些行放入逗号分隔的字符串中。

我不确定如何将子查询结果添加到要使用主选择查询返回的字符串。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:0)

SELECT sbrv_table.master_key 
    , STUFF((select ', ' + parent_key [text()]
              from dbo.dlnk 
              where dlnk.parent_key = sbrv_table.masterkey
              FOR XML PATH(''),TYPE)
             .value('.','NVARCHAR(MAX)'),1,2,'') AS parent_key_List                      
FROM dbo.sbrv_table 
GROUP BY sbrv_table.master_key