2014-12-05 46 views
-1

我有一个查询结果如下所示。正如你所看到的,grp_code列是相同的。将多行转换为一列SQL Server 2008

我想从find_description列中创建一个字符串,并将结果显示在一列中。我有几个这样的项目,我希望有一个简单的方法。

Group Description   Grp Code  Find Code   Find description 
Pre Procedure    CENTL8   FND102757   Labs Reviewed 
Pre Procedure    CENTL8   FND102758   Consent verified 
Pre Procedure    CENTL8   FND102759   History 
Pre Procedure    CENTL8   FND120760   Assemble equipment 

结果所需

Labs Reviewed, Consent Verified, History, Assemble equipment 
+1

你在这方面做了什么尝试?你的列名和表名称是什么,所以有人可以帮助把查询放在一起。你是否建立了一个字符串分隔的列表,以便自己尝试这个呢? – Jt2ouan 2014-12-05 15:55:15

回答

0

你会使用的东西的功能和XML路径建立一个字符串分隔列表列。

SELECT 
    Group_description 
    ,Grp_code 
    ,Find_code 
    ,find_descriptionString = STUFF((
      SELECT ', ' + md.find_description 
      FROM *table_name* 
      WHERE m.group_code = md.group_code 
      FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 
FROM *table_name* m 
GROUP BY m.grp_code 
     ,group_description 
     ,find_code 
+0

感谢您的回答。如果我把你的解决方案,我得到以下错误 – 2014-12-16 00:46:39

+0

什么是错误? – Jt2ouan 2014-12-16 02:14:23