dsdfsdfzs
2019-04-29 14:49两道sql创建函数与存储过程的问题
51.创建函数float sf_getAverageGrade(@sname nchar(10))。
如果没有学生叫做@sname,函数返回-1; 如果有多名学生叫做@sname,则返回-2; 如果他/她具有至少一门课程,则返回学生姓氏的平均成绩; 如果学生@sname没有课程成绩,则返回null。
参数@sname等于'李少西'时显示函数结果。
2.创建存储过程sp_displayGradeInRow(@sname nchar(10))。
存储过程显示两行信息:“姓名”一行,由@sname和“平均成绩”选择的所有课程名称,@sname的另一行,成绩和平均成绩。 (使用光标获取课程名称和成绩)
参数@sname等于'李少西'时显示存储过程结果
第一问:
create function sf_getAverageGrade(@sname nchar(10))
returns real
as
begin
DECLARE @sno nchar(10);
DECLARE @cname nchar(15);
DECLARE @grade real;
declare @avgg real;
declare @c int;
declare @d int;
set @c = (SELECT count(*) FROM student WHERE sname=@sname)
set @d = (select count(*) from course where cname=@cname)
if @d=0 set @avgg='null'
else if @c>0 set @avgg=(select avg(grade) from sc where sno=@sno);
else if @c>1 set @avgg= '-2';
set @avgg ='-1';
return @avgg;
end;
报错:从数据类型 varchar 转换为 real 时出错。
以及第二问
求助qwq感谢!!
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- scrapy存到mysql查询无数据
- 测试用例
- python
- 数据挖掘
- mysql
- 1个回答
- SQL根据条件来赋值,求大佬指导
- sql
- 1个回答
- 两道sql创建函数与存储过程的问题
- sql
- 2个回答
- Navicat for MySQL如何创建带参数的存储过程
- 数据库
- mysql
- 0个回答
- WEBLOGIC的BUG??? 关闭的连接
- 企业应用
- 0个回答
换一换