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로 이식할 때 그대로 쓰기 좋은 함수예요.