我想写一个SQL Server查询将从下面的示例表中检索数据:选择单列多行分为单列
Table: Person
ID Name
-- ----
1 Bill
2 Bob
3 Jim
Table: Skill
ID SkillName
-- -----
1 Carpentry
2 Telepathy
3 Navigation
4 Opera
5 Karate
Table: SkillLink
ID PersonID SkillID
-- -------- -------
1 1 2
2 3 1
3 1 5
正如你所看到的,SkillLink表的目的是为了适应不同的(可能有多个或没有)个人技能。我想实现我的查询结果是:
Name Skills
---- ------
Bill Telepathy,Karate
Bob
Jim Carpentry
因此,对于每个个人,我想用逗号连接指着他所有SkillNames的名单。这可能是多种技能或根本没有。
这显然不是我正在使用的实际数据,但结构是相同的。
也请随意为这个问题提出一个更好的标题作为评论,因为措辞简洁是我的问题的一部分。
可能重复(http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single -text-string) – Taryn
从标题中你可能会想到,但正如你所看到的那样,这不太正确。我想将多行连接成单个文本字符串,并根据第三个表将它们与他们的人员配对。我正在寻找这样做的所有*的查询,而不仅仅是连接。 – radicalbiscuit
回复:问题标题 - 您可以省略“SQL查询”,就像标签中显而易见的那样,并将“组合”更改为“选择”。 –