存储过程——case函数、while函数、repeat函数的应用、loop函数

1.case循环

存储过程中,几种循环格式的语法讲解。
在这里插入图片描述

create procedure p6(in month int)
begin
	declare result varchar(10);
	case
		when month >= 1 and month <= 3 then
			set result := '第一季度';
		when month >= 4 and month <= 6 then
			set result := '第二季度';
		when month >= 7 and month <= 9 then
			set result := '第三季度';
		when month >= 10 and month <= 12 then
			set result := '第四季度';
		else 
			set result := '非法参数';
	end case;
	
	select concat('您输入的月份为:',month,',所属的季度为', result);
end;

call p6(4);

在这里插入图片描述

2.while语法

在这里插入图片描述

在这里插入图片描述

create procedure p7(in n int)
begin
	declare total int default 0;
	while n>0 do
		set total := total + n;
		set n := n - 1;
	end while;

	select total;
end;

call p7(10);

3.repeat循环

在这里插入图片描述

create procedure p8(in n int)
begin
	declare total int default 0;
	repeat
		set total := total + n;
		set n := n - 1;
	until n <= 0
	end repeat;

	select total;
end;

call p8(10);

4.loop循环

在这里插入图片描述
在这里插入图片描述

create procedure p9(in n int)
begin
	declare total int default 0;
	
	sum:loop
		if n<=0 then
			leave sum;
		end if;
		set total := total + n;
		set n := n - 1;
	end loop sum;

	select total;
end;

call p9(10);
create procedure p10(in n int)
begin
	declare total int default 0;

	sum:loop
		if n<=0 then
			leave sum;
		end if;
		
		if n%2 = 1 then
			set n := n - 1;
			iterate sum;
		end if;
		
		set total := total + n;
		set n := n - 1;
	end loop sum;

	select total;
end;

call p10(10);

猜你喜欢

转载自blog.csdn.net/weixin_44860226/article/details/131923981