sql – 从单列中选择多行到单行
发布时间:2021-03-07 20:09:36 所属栏目:编程 来源:网络整理
导读:我想编写一个SQL Server查询,它将从以下示例表中检索数据: Table: PersonID Name-- ----1 Bill2 Bob3 JimTable: SkillID SkillName-- -----1 Carpentry2 Telepathy3 Navigation4 Opera5 KarateTable: SkillLinkID PersonID SkillID-- -------- -------1 1 22
我想编写一个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.这也许是多项手艺或基础没有手艺. 这显然不是我事变的现实数据,但布局是一样的. 也请随意为这个题目提议一个更好的问题作为评述,由于简捷地说它是我题目的一部门. 办理要领您将行使FOR XML PATH:select p.name,Stuff((SELECT ',' + s.skillName FROM skilllink l left join skill s on l.skillid = s.id where p.id = l.personid FOR XML PATH('')),1,'') Skills from person p 见SQL Fiddle with Demo 功效: | NAME | SKILLS | ---------------------------- | Bill | Telepathy,Karate | | Bob | (null) | | Jim | Carpentry | (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |