sql-server - 详细信息表中的 SQL Server 列表

标签 sql-server

让我们构建 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/

相关文章:

sql-server - 用于创建索引的 Include 子句

sql-server - T-SQL 中的存储过程转换为 PostgreSQL

sql - Crystal Reports 交叉表,按数据库字段分组

sql - 如何在 MS SQL Server 中将 10% 的数据集拆分为 “control” 并将 90% 的数据集拆分为 “test”

sql-server - 在模型优先 Entity Framework 中使用 SmallDateType

c# - 获取 SQL 数据并将其显示在文本框中?

sql - 减少聚合的数据库行

sql - UDF 中的 COLLATE 未按预期工作

SQL Server - 异步查询执行

sql - 如何根据另一个表中另一列的值更新列?