Microsoft SQL Server创建用户定义函数C_MAX,根据输入的课程名称,输出该门课程最高分数。在此基础上查看‘数据库’课程的最高分的学号、成绩。其中SC表有学号、课程号、成绩;Course表中课程号、课程名
时间: 2024-05-06 08:16:01 浏览: 20
首先,我们需要创建一个名为C_MAX的用户定义函数,如下所示:
```
CREATE FUNCTION C_MAX (@course_name VARCHAR(50))
RETURNS INT
AS
BEGIN
DECLARE @max_score INT
SELECT @max_score = MAX(SC.score)
FROM SC
INNER JOIN Course ON SC.course_id = Course.course_id
WHERE Course.course_name = @course_name
RETURN @max_score
END
```
这个函数接受一个课程名称作为输入参数,并返回该门课程的最高分数。
接下来,我们可以使用这个函数来查找‘数据库’课程的最高分数。假设‘数据库’课程的课程号为1001,我们可以使用以下查询语句来找到最高分数和对应的学号:
```
SELECT TOP 1 SC.student_id, SC.score
FROM SC
WHERE SC.course_id = 1001 AND SC.score = (SELECT dbo.C_MAX('数据库'))
ORDER BY SC.score DESC
```
这个查询语句会返回‘数据库’课程中最高分数的学号和成绩。我们使用了之前创建的C_MAX函数来获取最高分数,并使用ORDER BY子句按照成绩降序排列,然后使用TOP 1子句只返回第一行结果。