假设下面是您的表结构
Departments
deptid DeptName
------------
1 HR
2 Accts
3 IT
Employee
pid deptid
-----------
1 2,1
2 1
3 1,3
4 2,3,1
尝试这个
SELECT pid, Depts = STUFF((SELECT ',' + d.DeptName
FROM @Departments AS d
INNER JOIN @Employees AS ei
ON ',' + ei.deptid + ',' LIKE '%,' + CONVERT(VARCHAR(12), d.deptid) + ',%'
WHERE ei.pid = e.pid
ORDER BY DeptName
FOR XML PATH, TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
FROM @Employees AS e
ORDER BY pid;
SQL 小提琴演示
输出
pid Depts
-----------------
1 Accts,HR
2 HR
3 HR,IT
4 Accts,HR,IT