1)创建标量函数,计算指定课程号的课程的平均成绩,然后调用该函数查询某门课的平均成绩。 create function my_avg(@cno char(6)) returns real as begin declare @par real select @par=AVG(degree) from score where [email protected] return @par end go print dbo.my_avg(‘3-105‘) go 2)创建内联表值函数(返回可更新表),查询指定学号的学生的选课情况(包括学号、姓名、课程号和成绩),然后调用该函数查询某位学生的选课情况,再调用该函数将该生某门课的成绩改为100,重新查询该生成绩检查一下改过来了吗。 create function my_info(@sno char(5)) returns table as return ( select student.sno,sname,cno,degree from student,score where [email protected] and [email protected] ) go select * from my_info(‘101‘) update my_info(‘101‘) set degree=90 where cno=‘3-105‘ go 3)创建多语句表值函数(返回不可更新表),查询指定课程号的学生的选课情况(包括学号、姓名和成绩),并将选了该课的学生成绩提高5分,然后调用该函数查询某门课的学生的选课及成绩修改情况。(之前先查询一下该课的成绩以便与调用函数后的成绩作对比。) create function my_info2(@cno char(6)) returns @st table (sno char(5), sname char(8), cno char(6), degree real ) as begin insert @st select student.sno,sname,cno,degree+5 from student,score where [email protected] and student.sno=score.sno return end go drop function my_info2 select * from my_info2(‘3-105‘) --update my_info2(‘3-105‘) set degree=90
时间: 2024-11-05 11:40:25