MySQL CASE语句

MySQL CASE语句

如何使用MySQL 中CASE语句在存储的程序中构造复杂的条件语句。

除了IF语句],MySQL提供了一个替代的条件语句CASE。 MySQL CASE语句使代码更加可读和高效。

  • 语法
情况1:类似于switch,一般用于实现等值判断。
语法:
    case 变量或表达式
    when1 then 语句1;
    when2 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)$

你可能感兴趣的:(mysql,sql,数据库)