[MySQL] CASE

참고

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 //

links

social