使用不同的值连接SQL中的行

时间:2014-10-29 07:30:14

标签: sql sql-server-2008

你好我有一个问题是在不同的表中连接多行,添加一个字段分隔符;例如。基本上我想连接具有相同DocumentsID的所有值,并且它们必须具有不同的fieldid。如果它没有fieldid,请将其留空。希望这是有道理的。第一次问这里。再次感谢。

DocumentsID Field ID   Values

  1          190       Jordan          
  1          191       Kobe
  1          192       Rose  
  2          191       Kobe 

预期结果

DocumentsID   Values 

   1       Jordan; Kobe; Rose
   2           Kobe

1 个答案:

答案 0 :(得分:1)

您可以参考同样的问题here

我已经修改了接受的答案中使用的查询,只是为了适合您的示例。

set nocount on;
declare @YourTable table (DocumentID int, FieldID int, [Values] varchar(50))

insert into @YourTable VALUES (1,190,'Jordan')
insert into @YourTable VALUES (1,191,'Kobe')
insert into @YourTable VALUES (1,192,'Rose')
insert into @YourTable VALUES (2,191,'Kobe')
set nocount off

SELECT DISTINCT
t1.DocumentID
    ,STUFF(
               (SELECT
                    ', ' + t2.[Values]
                    FROM @YourTable t2
                    WHERE t1.DocumentID=t2.DocumentID
                    ORDER BY t2.[Values]
                    FOR XML PATH(''), TYPE
               ).value('.','varchar(max)')
               ,1,2, ''
          ) AS [Values]
FROM @YourTable t1
GROUP BY t1.DocumentID,t1.[Values]