我为同一个问题删除了我的其他帖子并重新发布了一个新帖子,因为我觉得另一个问题令人困惑。请原谅我的副本。希望这会有所吸引力
这是我的表A
Id Name
1 Name1
1 Name2
2 Name3
2 Name4
2 Name5
Table B:
Id FileName
1 file1
2 File2
我需要将输出结合表B作为
Id FileName Name
1 file1 Name1,Name2
2 file2 Name3,Name4,Name5
我尝试了几种与COALESE相关的方法,它们可以独立工作,但只有当我输入Id =<>时才会这样做。
如何将这两个表结合起来?
如果我能解释清楚,请告诉我。我为我的上一篇文章道歉。
答案 0 :(得分:1)
尝试以下方法:
SELECT a.id, b.FileName,
REPLACE(
(SELECT distinct Name AS [data()]
FROM TableA a2
WHERE a.id=a2.id
ORDER BY a2.Name FOR XML PATH('')),
' ', ', ')
FROM TableB b inner join TableA a on a.id = b.id
GROUP BY a.id, b.FileName;
答案 1 :(得分:1)
SELECT Id, FileName,
(SELECT Name+',' FROM A WHERE A.Id = B.Id FOR XML PATH('')) Name
FROM B
您有责任删除最后一个逗号8 - )
提示:
SELECT Id, FileName,
STUFF((SELECT ','+Name FROM @A a WHERE A.Id = B.Id FOR XML PATH('')), 1, 1, '') Name
FROM @B b