函数
【1】
--(1)定义一个根据学生姓名查询该生学习课程的函数stu_count。 --create function stu_count(@sname char(8))--学生姓名 --returns char(12)--学习课程 --begin --declare @course char(12)--学习课程 --select @course=course from scores --join student on scores.sno=student.sno --where sname=@sname--根据姓名 --return @course--学习课程 --end; --调用 --print dbo.stu_count('杜敏')
【2】
----定义一个根据系名和课程名,查询该系学生在该门课程上程的平均分的函数sdept_avggrade。 --create function sdept_avggrade(@dept varchar(20),@course varchar(20)) --returns decimal(4,1) --begin --declare @avg decimal(4,1) --select @avg=avg(grade) --from scores join student on scores.sno=student.sno --where @dept in(select dept from classes join student on classes.classno=student.sno) --and course=@course --return @avg --end; ----分别用select和print调用函数sdept_avggrade,查询“计算机系”学生在“数据库原理与应用”这门课程上的平均成绩。 --print dbo.sdept_avggrade('计算机系','大学英语') --select dbo.sdept_avggrade('计算机系','大学英语')
【3】❗
--(3)创建一个函数f1,根据学生的学号和选修的课程查询该生在该门课程上的成绩,然后返回这个成绩所对应的等级(90及以上:优秀;80及以上:良好;70及以上:中等;60及以上:及格;60以下:不及格)。 --create function f1(@sno char(8),@course char(12)) --returns char(8) --begin --declare @level char(8),@grade int --select @grade=grade from scores --if @grade>=90 --set @level='优秀' --else if @grade>=80 --set @level='良好' --else if @grade>=70 --set @level='中等' --else if @grade>=60 --set @level='及格' --else --set @level='不及格' --return @level --end; --调用 --print dbo.f1('6320210622 ','大学英语') --select dbo.f1('计算机系','大学英语')
create function f1(@sno char(8),@course char(12)) returns char(8) begin declare @level char(8),@grade int select @grade=grade from scores select @level=CASE when @grade>=90 then '优秀' when @grade>=80 then'良好' when @grade>=70 then '中等' when @grade>=60 then '及格' else '不及格' end return @level end;
【4】
--(4)创建一个自定义函数f2,根据学生的学号查询该学生的姓名、选修课程名称和对应课程的成绩。(表值函数) --create function f2(@sno char(8)) --returns table --return --( --select sname,course,grade from student --join scores on student.sno=scores.sno --where student.sno=@sno --) --(7)调用函数f2,查询“St0109010001”号学生的姓名、选修课程名称和对应课程的成绩。 --select * from dbo.f2('6320210630')
--使用DROP FUNCTION语句来删除f1和f2函数。 drop function f1,f2
存储过程
思考&分析