利用SQL创建一个内嵌表值函数 FN_FindTeachersByClassname,要求根据“课程名”查找出该课程的“课程编号、课程名”以及该课程所有任课教师的“教师编号、教师姓名”共4列信息; 2、调用上一步编写的函数检索:所有含'SQL Server数据库'这门课程的老师姓名;
时间: 2024-02-18 17:03:03 浏览: 102
下面是创建内嵌表值函数 FN_FindTeachersByClassname 的 SQL 代码:
```sql
CREATE FUNCTION FN_FindTeachersByClassname (@classname VARCHAR(50))
RETURNS TABLE
AS
RETURN
(
SELECT c.课程编号, c.课程名, t.教师编号, t.教师姓名
FROM 课程表 c
INNER JOIN 授课表 s ON s.课程编号 = c.课程编号
INNER JOIN 教师表 t ON t.教师编号 = s.教师编号
WHERE c.课程名 = @classname
)
```
上面的代码中,我们定义了一个名为 FN_FindTeachersByClassname 的内嵌表值函数,函数接收一个参数 @classname,表示要查询的课程名。函数返回一个表,包含4列信息:课程编号、课程名、教师编号、教师姓名。
下面是调用 FN_FindTeachersByClassname 函数检索所有含'SQL Server数据库'这门课程的老师姓名的 SQL 代码:
```sql
SELECT DISTINCT 教师姓名
FROM FN_FindTeachersByClassname('SQL Server数据库')
```
上面的代码中,我们调用了 FN_FindTeachersByClassname 函数,并传入了参数 'SQL Server数据库',表示要查询的课程名。然后使用 DISTINCT 关键字对查询结果去重,最终得到所有任教过 'SQL Server数据库' 这门课程的老师姓名。
阅读全文