CASE

CASE (조건 분기)

SQL 사용자 정의 함수에서 조건부 처리를 가능하게 하는 문법이에요. 값에 따라 서로 다른 처리를 하고 싶을 때 사용해요.

출처: 문서

본문

CASE 문은 SQL 사용자 정의 함수에서 조건부 처리를 허용하는 선택적 구조예요.

WHEN 절은 순차적으로 평가되며 첫 번째 일치 후 멈추므로, 문의 순서가 중요해요. 어떤 WHEN 절도 일치하지 않으면 ELSE 절의 문이 실행돼요.

C나 Java 같은 다른 언어와 달리 SQL은 case 폴스루(fall through)를 지원하지 않아서, 처리는 첫 번째 일치한 case의 끝에서 멈춰요.

WHEN 절은 하나 이상 사용할 수 있어요.

시그니처

단순 case:

CASE
  WHEN condition THEN statements
  [ ... ]
  [ ELSE statements ]
END CASE

검색된(searched) case:

CASE expression
  WHEN expression THEN statements
  [ ... ]
  [ ELSE statements ]
END

예시

다음 예시는 단순 CASE 문 사용을 보여줘요:

FUNCTION simple_case(a bigint)
  RETURNS varchar
  BEGIN
    CASE a
      WHEN 0 THEN RETURN 'zero';
      WHEN 1 THEN RETURN 'one';
      ELSE RETURN 'more than one or negative';
    END CASE;
    RETURN NULL;
  END

CASE 문을 다른 문과 결합해 사용하는 다양한 복잡도의 추가 예시는 예시 SQL UDF 문서에서 확인할 수 있어요.

더 알아보기 (Learn more)

SQL UDF 전반은 SQL 사용자 정의 함수 문서에서, 표현식 수준에서의 조건 분기는 CASE를 사용한 조건식 문서를 참고해요.