MySQL——case语句
case语句
第一种表达方式:
语法格式为:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
说明:一个CASE语句经常可以充当一个IF-THEN-ELSE语句。
第一种格式中case_value是要被判断的值或表达式,接下来是一系列的WHEN-THEN块,每一块的when_value参数指定要与case_value比较的值,如果为真,就执行statement_list中的SQL语句。如果前面的每一个块都不匹配就会执行ELSE块指定的语句。CASE语句最后以END CASE结束。
例如
创建一个存储过程,当参数值为M,返回结果为“男”,当参数值为F,返回结果为“女” 。
DELIMITER $$
CREATE PROCEDURE XSCJ.RESULT
(IN str VARCHAR(4), OUT sex VARCHAR(4) )
BEGIN
CASE str
WHEN 'M' THEN SET sex='男';
WHEN 'F' THEN SET sex='女';
ELSE SET sex='无';
END CASE;
END$$
DELIMITER ;
第二种表达方式:相比第一种表达方式,case后面没有参数,这种格式能够实现更为复杂的条件判断,使用起来更方便
用第二种格式的CASE语句创建以上存储过程。程序片段如下:
CREATE PROCEDURE XSCJ.RESULT
(IN str VARCHAR(4), OUT sex VARCHAR(4) )
BEGIN
CASE
WHEN str='M' THEN SET sex='男';
WHEN str='F' THEN SET sex='女';
ELSE SET sex='无';
END CASE;
END$$
点击加载更多评论>>