流程控制结构
if函数
IF (表达式1,表达式2,表达式3)
功能:
实现简单的双分支问题
执行顺序:
首先判断表达式1
如果表达式1成立,则返回表达式2的值
否则返回表达式3
运用在任何地方
case
类似if语句,实现区间判断
case
when 判断条件1 then 返回值或者表达式;
when 判断条件2 then 返回值或者表达式;
。。。
else 返回值或者表达式;
end case
注意点:
1、在真实的使用场景下,else可以省略
DELIMITER $
CREATE FUNCTION f5(score FLOAT) RETURNS CHAR
BEGIN
DECLARE grade CHAR;
CASE
WHEN score >90 THEN SET grade='A';
WHEN score > 80 THEN SET grade='B';
WHEN score >70 THEN SET grade='C';
ELSE SET grade='D';
END CASE;
RETURN grade;
END
14.3 if 结构
1、IF函教
实现了简单的双分支
IF(表达式1,麦达式2,表达式3)
执行顺序:如果表达式1成立,返回表达式2的结果,否则返回表达式3
2、CASE语句
语法:
CASE 变量|表达式」字段
WHEN要判断的值THEN返回的值1或者语句1;
WHEN要判断的值THEN 返回的值2或者语句2;
WHEN要判断的值THEN返回的值3或者语句3;
ELSE 返回的值或者语句;
END CASE;
类似IF语句,实现区间的判断
CASE
WHEN判断条件1THEN返回的值或者语句;
WHEN判新条件2THEN返回的值或者语句;
WHEN判新条件3THEN返回的值或者语句;
WHEN判断条件4THEN返回的值或者语句;
ELSE返回的值或者语句;
END CASE;
使用的比较复杂的条件判断
if 条件1 then 语句;
elseif 条件2 then 语句;
。。。
else 语句;
end if;
使用在begin end 中,在函数或者存储过程中
DELIMITER $
CREATE PROCEDURE p17(IN fri FLOAT,OUT result CHAR)
BEGIN
IF 1<fri AND fri <2 THEN SET result='D';
ELSEIF 2 <fri AND fri <4 THEN SET result='C';
ELSEIF 4<fri AND fri <6 THEN SET result='B';
ELSE SET result='A';
END IF;
END
CALL p17(5,@result)
SELECT @result
14.4 总结
优先使用的是case,结构简单使用其他