首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql存储过程---选择结构

mysql存储过程---选择结构

作者头像
用户5899361
发布2020-12-07 15:38:13
8560
发布2020-12-07 15:38:13
举报
文章被收录于专栏:学习java的小白学习java的小白
声明变量:

关键字DECLARE,下列语句声明变量名为num的int类型的变量长度为10,[ default 0 代表默认值为0,可以不写]。

DECLARE num int(10) [DEFAULT 0];

给变量赋值,使用select 字段名称 into 变量名 from 表名。下列语句意思:查询班级表总记录数赋值给num变量。

select count(class_id) INTO num from class_info;

第二种赋值方式,使用set关键字,下面语句意思为,给num的值为1.

SET num=1;
第一种选择结构:

if-else语法,if 表达式 then 业务逻辑 elseif 表达式 then 业务逻辑 else 业务逻辑 end if 表示if判断结束,下面语句意思:如果num=1则test=1,否则如果 num=2则test=2,否则test=3

IF num = 1 
THEN 
	SET test='1';
ELSEIF num = 2
THEN
	SET test='2';
ELSE
  SET test='3';
END IF;
完整存储过程
BEGIN
	DECLARE num int ;
  DECLARE test VARCHAR(50);
	select count(class_id) INTO num from class_info;
IF num = 1 
THEN 
	SET test='1';
ELSEIF num = 2
THEN
	SET test='2';
ELSE
  SET test='3';
END IF;
select CONCAT('结果',test);
END

第二种选择结构:case-when

写法一:

case
 when 表达式
   then 业务逻辑
 when 表达式
   then 业务逻辑
 when 表达式
   then 业务逻辑
 ......
 else
    业务逻辑
end case

事例

BEGIN	
	DECLARE num int DEFAULT 80;
  DECLARE test VARCHAR(50);
	CASE
	 WHEN num>=90 AND num<=100
				THEN SET test='成绩优秀';

	 WHEN num>=80 AND num<90
				THEN SET test='成绩良好';

	 WHEN num>=70 AND num<80
				THEN SET test='成绩一般';

	 WHEN num>=60 AND num<=70
				THEN SET test='成绩及格';
	 ELSE
				SET test='不及格';
	END CASE;

  select CONCAT(test);
END

写法二:

BEGIN	
	DECLARE num int DEFAULT 80;
    DECLARE test VARCHAR(50);
	CASE 具体值
	 WHEN 匹配的值,如果匹配上则执行业务逻辑
			THEN 业务逻辑;

	 WHEN 匹配的值,如果匹配上则执行业务逻辑
			THEN 业务逻辑;
	 WHEN 匹配的值,如果匹配上则执行业务逻辑
			THEN 业务逻辑;

     .......
	 ELSE
			业务逻辑
	END CASE;

END

事例:

BEGIN	
	DECLARE num int DEFAULT 80;
  DECLARE test VARCHAR(50);
	CASE num
	 WHEN 100
			THEN SET test='成绩优秀';

	 WHEN 70
			THEN SET test='成绩良好';

	 WHEN 60
			THEN SET test='成绩一般';

	 WHEN 50
			THEN SET test='成绩及格';
	 ELSE
			SET test='不及格';
	END CASE;

  select CONCAT(test);
END
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 声明变量:
  • 第一种选择结构:
  • 完整存储过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档