如题:
解决方案:
第一题:
create function fun_sum(n int)
returns int #返回值类型
begin
declare i int default 1; #变量声明及初始化
declare ans int default 1;
while i<=n do
set ans=ans*i;
set i=i+1;
end while; /*注意:end while后面要加分号*/
return ans; -- 返回结果
end
查验结果:
第二题:
delimiter $$
CREATE FUNCTION fun_class ( s_no VARCHAR ( 20 ) )
RETURNS VARCHAR ( 20 )
READS SQL DATA
BEGIN
DECLARE classname VARCHAR ( 20 );
SELECT
clname INTO classname
FROM
student s
LEFT JOIN class c ON s.classno = c.classno
WHERE
sno = s_no;
RETURN classname;
END;
$$
查验结果
第三题:
delimiter $$
CREATE FUNCTION fun_compare (peacetime decimal(5,1),practice decimal(5,1))
RETURNS VARCHAR (20)
READS SQL DATA
BEGIN
DECLARE compareresult VARCHAR ( 20 );
case when peacetime = practice then set compareresult = '比较均衡';
when peacetime > practice then set compareresult = '加强实践';
when peacetime < practice then set compareresult = '注重平时' ;
end case ;
RETURN compareresult;
END;
$$
查验结果: