修改存储过程proc_exp,要求输入学生学号时根据该学生所选课程的成绩显示提示信息,即如果平均成绩成绩在60分以上,显示“此学生成绩合格,成绩为XX分”,否则显示“此学生综合成绩不合格,成绩为XX分”
时间: 2024-01-03 08:03:07 浏览: 140
实现学生的学号成绩录入修改显示
好的,根据你的需求,我给出以下修改后的存储过程 `proc_exp` 代码:
```
CREATE PROCEDURE proc_exp(IN stu_id INT)
BEGIN
DECLARE avg_score FLOAT;
SELECT AVG(score) INTO avg_score FROM sc WHERE stuno = stu_id;
IF avg_score >= 60 THEN
SELECT CONCAT('此学生成绩合格,成绩为', FORMAT(avg_score, 2), '分') AS result;
ELSE
SELECT CONCAT('此学生综合成绩不合格,成绩为', FORMAT(avg_score, 2), '分') AS result;
END IF;
END;
```
在这个存储过程中,输入参数为 `stu_id`,代表学生的学号。首先,我们查询出该学生的所有课程的成绩,并计算出它们的平均分数 `avg_score`。然后,我们使用 `IF` 条件语句根据平均分数判断该学生的成绩是否合格,并输出相应的提示信息。
注意,这里使用了 `FORMAT` 函数对平均分数进行了格式化,保留了两位小数点。你可以根据自己的需求来调整输出格式。
阅读全文