DECODE 함수

DECODE 함수

DECODE 함수는 IF-THEN-ELSE 논리를 간결하게 구현할 수 있게 해 주는 함수예요. 값이 여러 조건 중 어떤 것과 일치하는지에 따라 서로 다른 결과를 돌려줍니다.

출처: 문서

본문

구문 (Syntax):

DECODE(expr, when_exp1, then_expr1 [, ...n] [, else_expr])

참고 (Notes):

  • expr 값이 NULL이면, NULL인 첫 번째 when_exprN과 일치하는 것으로 처리돼요.
  • 어떤 when_exprN과도 일치하지 않으면 해당 then_exprN은 평가되지 않아요.

예제 (Examples):

DECLARE var1 INT DEFAULT 3;

PRINT DECODE (var1, 1, 'A', 2, 'B', 3, 'C');       -- Result: C
PRINT DECODE (var1, 1, 'A', 2, 'B', 'C');          -- Result: C

SET var1 = NULL;
PRINT DECODE (var1, 1, 'A', 2, 'B', NULL, 'C');    -- Result: C

호환성 (Compatibility): Oracle, IBM DB2, Teradata

더 보기:

  • CASE Expression (CASE 식)

더 알아보기 (Learn more)

DECODE는 값 하나를 여러 분기로 나눠 처리할 때 IF-THEN-ELSE보다 짧고 읽기 좋아요. 조건이 더 복잡해지면 CASE 식을 사용하는 편이 낫습니다. Oracle·DB2·Teradata 코드를 Hive로 이식할 때 그대로 쓰기 좋은 함수예요.