CASE是另一个条件判断的语句,类似于编程语言中的switch语法
-- 语法一(类比java的switch): case case_value when when_value then statement_list [when when_value then statement_list] ... [else statement_list] end case -- 语法二: case when search_condition then statement_list [when search_condition then statement_list] ... [else statement_list] end case -- 语法一 delimiter $$ create procedure proc14_case(in pay_type int) begin case pay_type when 1 then select '微信支付' ; when 2 then select '支付宝支付' ; when 3 then select '银行卡支付'; else select '其他方式支付'; end case ; end $$ delimiter ; call proc14_case(2); call proc14_case(4); -- 语法二 delimiter $$ create procedure proc_15_case(in score int) begin case when score < 60 then select '不及格'; when score < 80 then select '及格' ; when score >= 80 and score < 90 then select '良好'; when score >= 90 and score <= 100 then select '优秀'; else select '成绩错误'; end case; end $$ delimiter ; call proc_15_case(88);
如果判断的类型是整型,或者是字符类型,那么可以采用第一个语法进行,如果是需要判断范围,那么采用第二次更加的好。