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參數(shù)指定要與case_value比較的值,如果為真,就執(zhí)行statement_list中的SQL語句。如果前面的每一個塊都不匹配就會執(zhí)行ELSE塊指定的語句。CASE語句最后以END CASE結束。
例如
創(chuàng)建一個存儲過程,當參數(shù)值為M,返回結果為“男”,當參數(shù)值為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后面沒有參數(shù),這種格式能夠實現(xiàn)更為復雜的條件判斷,使用起來更方便
用第二種格式的CASE語句創(chuàng)建以上存儲過程。程序片段如下:
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$$
點擊加載更多評論>>