使用 CAST() 在字段中创建列表

Creating a List within a Field Using CAST()

我正在尝试创建一个标题为“技能”的列,其中列出了与给定人员相关的每项技能。基本上,我目前收到以下结果:

NAME            SKILL

Person A        Programming
Person A        Web Design
Person A        SQL
Person B        Project Management
Person B        Written Communication

我需要得到这样的结果:

NAME            SKILL

Person A        Programming, Web Design, SQL
Person B        Project Management, Written Communication

这是我的 SQL 代码目前的样子:

CAST((
    SELECT InterestCodeRoot.Code + ','
    FROM InterestCodeRoot
    WHERE EmployeeInterestCode.CodeIdent = InterestCodeRoot.CodeIdent
    FOR XML PATH(''))as varchar(max))
    AS [Skill ID],

我也尝试过使用 STUFF() 和 GROUP_CONCAT(),但两种方法都不起作用。这是我得到的最接近的。如有任何建议或帮助,我们将不胜感激。

最简单的方法是string_agg(),可在较新版本的SQL 服务器:

select name, string_agg(skill, ', ') within group (order by skill)
from InterestCodeRoot
group by name;