참고
MySQL Documentation 13.6.5.1 CASE Statement
syntax
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
Or:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
주의
- 만약 매칭되는 WHEN이 없으며 ELSE도 없다면
Case not found for CASE statement
라는 에러가 발생한다. - 에러를 막기 위해 아래와 같이 빈 BEGIN ... END 블록을 사용할 수 있다.
DELIMITER //
CREATE PROCEDURE p()
BEGIN
DECLARE v INT DEFAULT 1;
CASE v
WHEN 2 THEN SELECT v;
WHEN 3 THEN SELECT 0;
ELSE
BEGIN
END;
END CASE;
END //