MySQL CASE语句
如何使用MySQL 中CASE
语句在存储的程序中构造复杂的条件语句。
除了IF语句],MySQL提供了一个替代的条件语句CASE
。 MySQL CASE
语句使代码更加可读和高效。
- 语法
情况1:类似于switch,一般用于实现等值判断。
语法:
case 变量或表达式
when 值1 then 语句1;
when 值2 then 语句2;
...
else 语句n;
end
情况2:类似于多重if语句,一般用于实现区间判断。
语法:
case
when 条件1 then 语句1;
when 条件2 then 语句2;
...
else 语句n;
end
-
特点
①可以作为表达式,嵌套在其他语句中使用。
② 可以放在任何地方,BEGIN END 中或BEGIN END 的外面可以作为独立的语句去使用,只能放在BEGIN END中如果WHEN中的值满足或条件成立,则执行对应的THEN后面的语句,并且结束CASE如果都不满足,则执行ELSE中的语句或值 。
-
位置
①可以放在任何位置
②如果放在begin end 外面,作为表达式结合着其他语句使用
③如果放在begin end 里面,一般作为独立的语句使用
-
案例
#案例
#创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90-100, 显示A,80-90,显示B,60-80,显示c,否则,显示D
CREATE PROCEDURE test_case (IN score INT)
BEGIN
CASE
WHEN score>=90 AND score<=100 THEN SELECT 'A';
WHEN score>=80 THEN SELECT 'B';
WHEN score>=60 THEN SELECT 'C';
ELSE SELECT 'D';
END CASE;
END $
CALL test_case(95)$