T-SQL创建一个存储过程,根据学号,得到所学课程平均值
时间: 2023-08-19 12:04:09 浏览: 49
好的,以下是基于 T-SQL 的存储过程代码:
```sql
CREATE PROCEDURE getAvgScoreByStudentId
@studentId INT
AS
BEGIN
SELECT AVG(score) AS avgScore
FROM scores
WHERE student_id = @studentId
GROUP BY student_id
END
```
这个存储过程名为 `getAvgScoreByStudentId`,需要传入一个参数 `@studentId` 表示要查询的学生编号。它会从 `scores` 表中找到该学生的所有成绩,并计算平均值,最后返回结果。
相关问题
sql创建一个存储过程 SC_PROC,要求指定学生选课的平均成绩(以学号为参数)
下面是创建存储过程 SC_PROC 的 SQL 语句,实现指定学生选课的平均成绩(以学号为参数):
```
CREATE PROCEDURE SC_PROC
@student_id INT
AS
BEGIN
SELECT AVG(SC.score) AS avg_score
FROM SC
WHERE SC.student_id = @student_id;
END
```
该存储过程接收一个学号作为参数,然后在 SC 表中查询该学生的所有选课成绩,最后计算平均成绩并返回结果。可以通过以下方式调用该存储过程:
```
EXEC SC_PROC @student_id = 12345;
```
其中,@student_id 是输入参数,需要传入一个具体的学号值。执行上述语句后,将返回指定学生选课的平均成绩。
创建存储过程,根据用户提供的学号查询该同学所有选修课程的平均分
下面是一个根据学号查询该同学所有选修课程的平均分的存储过程的例子:
```sql
CREATE PROCEDURE get_avg_score(IN student_id INT, OUT avg_score FLOAT)
BEGIN
SELECT AVG(score) INTO avg_score
FROM sc
WHERE sid = student_id;
END;
```
这个存储过程接受一个输入参数 `student_id`,表示要查询的学生的学号。存储过程中使用 `SELECT AVG(score)` 语句查询该学生在 `sc` 表中的所有选修课程的平均分,并将结果存储到 `avg_score` 输出参数中。
使用该存储过程的示例代码:
```sql
SET @student_id = 12345;
CALL get_avg_score(@student_id, @avg_score);
SELECT @avg_score;
```
这段代码首先设置变量 `@student_id` 的值为学生的学号,然后调用存储过程 `get_avg_score`,将该学生的学号作为输入参数,将平均分存储到变量 `@avg_score` 中。最后,使用 `SELECT @avg_score` 显示平均分。