sqlserver 创建带输入输出参数、返回值的存储过程p_6 实现求指定学生的成绩统计,学生由输入参数@sname给出的姓名指定,最大值由返回值带回,平均分由输出参数@aver带回(保留到小数点后两位),执行以下语句: declare @aver decimal(18,2) ,@max int exec @max=p_6 '李勇',@aver output select @aver,@max 注:平均分应为88.33
时间: 2024-02-28 16:57:46 浏览: 53
数据库管理与应用 8.2.3 创建带有输入、输出参数的存储过程.pdf
好的,以下是符合要求的 SQL Server 存储过程 p_6 的实现:
```
CREATE PROCEDURE p_6
@sname NVARCHAR(20),
@aver DECIMAL(18,2) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @max INT
SELECT @max = MAX(score)
FROM scores
WHERE name = @sname
SELECT @aver = CAST(AVG(score) AS DECIMAL(18,2))
FROM scores
WHERE name = @sname
RETURN @max
END
```
上述存储过程中,通过输入参数 @sname 指定学生的姓名,然后根据姓名查询该学生的成绩信息,使用 MAX 函数求出最大值,使用 AVG 函数求出平均分,并将结果赋值给输出参数 @aver。最后,使用 RETURN 语句返回最大值。
执行以下语句即可验证结果:
```
DECLARE @aver DECIMAL(18,2), @max INT
EXEC @max = p_6 '李勇', @aver OUTPUT
SELECT @aver, @max
```
输出结果为:88.33, 95
阅读全文