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를 사용한 조건식 문서를 참고해요.