创建一个名为stc_info的存储过程,要求该存储过程有3个参数。输入参数为Tid和type,输出参数为info。满足:根据教师编号(Tid)来查询stc表中的记录。如果type值为1,返回该教师讲授的学生人数,如果type值为2,返回该教师讲授课程的平均成绩,如果type为其他值,返回error提示。 调用该存储过程。
时间: 2024-03-03 18:50:38 浏览: 29
好的,以下是符合要求的存储过程代码:
```
CREATE PROCEDURE stc_info
@Tid INT,
@type INT,
@info VARCHAR(50) OUTPUT
AS
BEGIN
DECLARE @count INT, @avg_score FLOAT
IF @type = 1
BEGIN
SELECT @count = COUNT(*) FROM stc WHERE Tid = @Tid
SET @info = '该教师讲授的学生人数为 ' + CONVERT(VARCHAR(10), @count) + ' 人。'
END
ELSE IF @type = 2
BEGIN
SELECT @avg_score = AVG(score) FROM stc WHERE Tid = @Tid
SET @info = '该教师讲授课程的平均成绩为 ' + CONVERT(VARCHAR(10), @avg_score) + ' 分。'
END
ELSE
BEGIN
SET @info = 'error'
END
END
```
然后可以使用以下代码来调用该存储过程:
```
DECLARE @info VARCHAR(50)
EXEC stc_info @Tid = 1, @type = 1, @info = @info OUTPUT
SELECT @info
EXEC stc_info @Tid = 1, @type = 2, @info = @info OUTPUT
SELECT @info
EXEC stc_info @Tid = 1, @type = 3, @info = @info OUTPUT
SELECT @info
```
根据输入的Tid和type参数,该存储过程可以返回不同的结果。当type为1时,返回该教师讲授的学生人数;当type为2时,返回该教师讲授课程的平均成绩;当type为其他值时,返回error提示。