여름엔 시원한 아이스아메리카노

오라클에서 데이터를 변환하거나 특정 조건에 따라 값을 변경할 때 DECODE 함수를 활용하면 매우 편리합니다. DECODEIF-THEN-ELSE 문과 유사한 기능을 제공하며, 특정 값에 따라 원하는 결과를 반환할 수 있습니다. 이번 포스팅에서는 DECODE 함수의 기본 사용법과 실무에서 활용할 수 있는 예제들을 소개해 드리겠습니다.

1. DECODE 함수란?

DECODE 함수는 특정 값이 주어진 조건과 일치할 경우 지정된 결과를 반환하는 함수입니다. 오라클에서 조건에 따른 값 변환을 간단하게 처리할 수 있어 자주 사용됩니다.

 

✅ 기본 문법

  • expression : 비교할 값
  • search1, search2, ... : 비교 대상 값
  • result1, result2, ... : 일치하는 값이 있을 경우 반환할 값
  • default_result : 어떤 값도 일치하지 않을 경우 반환할 값 (생략 가능)

 

2. DECODE 함수 기본 사용법

📌 예제 1: 성별 변환하기

사원 테이블에서 GENDER 컬럼이 1이면 "남자", 2이면 "여자"로 변환하는 SQL을 작성해보겠습니다.

GENDER 값이 1이면 '남자', 2이면 '여자', 그 외에는 '기타'로 변환됩니다. 가장 기본적이면서도 중요한 문구이니 꼭! 기억하시기 바랍니다.

 

📌 예제 2: 점수에 따른 등급 변환

학생 점수를 기준으로 성적 등급을 부여하는 경우:

SCORE 값에 따라 A, B, C, F 등급을 부여하는 예시입니다.

 

3. NULL 값 처리하기

📌 예제 3: NULL 값을 특정 값으로 대체

 DEPT_NO 컬럼이 NULL이면 "부서 없음"으로 변환하는 SQL입니다.

4. DECODE vs CASE 비교

✅ 남자냐? 여자냐? 처럼 간편하게 사용할 때는 DECODE문을 사용하고 조금더 깊이 있는 경우, CASE 문은 범위 비교 (>, <)도 가능하여 더 유연하게 사용할 수 있습니다. (WHEN GENDER IN ('1','2') 처럼 IN 함수를 사용하기도 합니다)

 

5. 결론

  • DECODE 함수는 단순한 값 변환을 할 때 매우 유용합니다.
  • 하지만 범위 비교나 가독성을 고려한다면 CASE 문을 사용하는 것이 더 좋습니다.

이상 오라클 SQL구분 중 가장 빈번하게 사용하는 DECODE 함수에 대해서 알아보았습니다.

반응형