SQL Server STUFF() function to flatten a table column


Scenario:

List Employees with their the roles.

Role
IDName
1Developer
2Manager
Employee
IDName
1Terry
2Jerry
Employee Role Xref
Employee IDRoleID
11
12
21

Query:


1
2
3
4
5
6
SELECT e.EmployeeID,
       (SELECT STUFF((SELECT ',' + Cast([name] AS VARCHAR(MAX))
                      FROM   Roles r
       JOIN [EmployeeRoleXref] erx ON erx.EmployeeID = e.EmployeeID AND  r.RoelID = erx.RoelID
                      FOR XML PATH('')), 1, 1, ''))
FROM   [Employee] e

Output:


NameRoles
TerryDeveloper, Manager
JerryManager

No comments:

Post a Comment

Move Github Sub Repository back to main repo

 -- delete .gitmodules git rm --cached MyProject/Core git commit -m 'Remove myproject_core submodule' rm -rf MyProject/Core git remo...