一、介绍
if 用于做条件判断,具体的语法结构为:
IF 条件1 THEN -- 如果条件1成立,则执行THEN之后的SQL逻辑,否则就要去判断ELSEIF的条件2
.....
ELSEIF 条件2 THEN -- 可选
.....
ELSE -- 可选
.....
END IF; -- 整个语法块结束,要通过END IF来结束
在if条件判断的结构中,ELSE IF结构可以有多个,也可以没有。 ELSE结构可以有,也可以没有。
二、案例
根据定义的分数score变量,判定当前分数对应的分数等级。
- score >= 85分,等级为优秀。
- score >= 60分 且 score < 85分,等级为及格。
- score < 60分,等级为不及格。
create procedure p3()
begin
declare score int default 58;
declare result varchar(10); -- 分数等级
if score >= 85 then
set result := '优秀';
elseif score >= 60 then
set result := '及格';
else
set result := '不及格';
end if;
select result;
end;
call p3();
上述的需求我们虽然已经实现了,但是也存在一些问题,比如:score 分数我们是在存储过程中定义死的,而且最终计算出来的分数等级,我们也仅仅是最终查询展示出来而已。
那么我们能不能,把score分数动态的传递进来,计算出来的分数等级是否可以作为返回值返回呢? 答案是肯定的,我们可以通过接下来所讲解的参数 来解决上述的问题。