I\'\'ll explain what I need to do on example. First of all, we have a simple table like this one, named table:
id | name
===+=====
1 | foo
1 | bar
For SQL Server (before 2017) use FOR XML clause and STUFF() function for that:
SELECT distinct id, name =
STUFF((SELECT ' , ' + name
FROM Table1 b
WHERE b.id = a.id
FOR XML PATH('')), 1, 2, '')
FROM Table1 a
GROUP BY id;
With SQL Server 2017, you can simply use STRING_AGG() function to achieve that:
SELECT ID, STRING_AGG (name, ', ') AS Name
FROM Table1
GROUP BY ID