让我们构建2个表
create table School
(
IdSchool int not null PK,
Name varchar(10) not null
)
create table Prof
(
IdSchool int not null,
IdProf int not null,
name varchar (10)
PK (IdSchool, IdProf)
)
我想建立这样的查询:
IdSchool, Prof.Name*
现在,我知道使用过程或函数构建列表不是问题,但有没有办法构建可以返回此类结果的查询。
P.S。查询应该返回单行,所以学校左边的连接教程的结果表不是我想要实现的结果。
THX。
答案 0 :(得分:1)
SELECT distinct Idschool, profs
FROM profs p1
CROSS APPLY
(
select substring((
SELECT ',' + name
FROM profs p2
WHERE p1.Idschool = p2.Idschool
FOR XML PATH('')
),2,1000)
as Profs
) profs
答案 1 :(得分:1)
试试这个:
SELECT IdSchool, Prof_name =
STUFF((SELECT ', ' + [name]
FROM Prof b
WHERE b.IdProf = a.IdProf
FOR XML PATH('')), 1, 2, '')
FROM Prof a
GROUP BY IdSchool