你好我有一个问题是在不同的表中连接多行,添加一个字段分隔符;例如。基本上我想连接具有相同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
答案 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]