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

文章介绍了在MySQL中创建存储过程时使用的不同类型的循环控制结构,包括Case语句用于条件判断,While循环和Repeat循环进行重复执行,以及Loop循环配合Leave和Iterate语句实现更灵活的流程控制。每个示例都展示了如何根据输入参数计算总和或确定季度。
摘要由CSDN通过智能技术生成

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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值