让我们构建 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*
- 教授姓名应该是由同一所学校的所有教授组成的列表。
现在,我知道使用过程或函数构建列表不是问题,但是有没有办法构建可以返回此类结果的查询。
附注查询应该返回单行,因此来自 school left join prof 的结果表不是我想要实现的结果。
谢谢。
最佳答案
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
关于sql-server - 详细信息表中的 SQL Server 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306301/