SQL DECODE 함수 완벽 정리|CASE WHEN과 차이점부터 SQLD 시험 대비까지

요약

SQL DECODE 함수는 Oracle에서 제공하는 조건 함수로 특정 값에 따라 다른 결과를 반환할 수 있습니다. SQL CASE WHEN과 비슷한 역할을 하지만 사용 방법과 지원 범위에 차이가 있습니다. SQLD 시험에서는 DECODE와 CASE WHEN 비교 문제가 자주 출제되므로 반드시 이해해야 하는 핵심 개념입니다.

SQL DECODE 함수란?

SQL DECODE 함수는 Oracle 데이터베이스에서 제공하는 조건 함수입니다.

특정 값과 비교하여 조건에 따라 다른 결과를 반환할 수 있습니다.

프로그래밍 언어의 IF 문과 비슷한 역할을 수행하며 SQL CASE WHEN이 등장하기 전부터 많이 사용되었습니다.

실무에서는 코드값을 문자로 변환하거나 조건별 결과를 출력할 때 활용됩니다.

SQL DECODE 함수는 SQLD 시험에서도 꾸준히 출제되는 함수 중 하나입니다. 더 많은 정보를 확인하고 SQL DECODE 기본 개념을 익혀보세요.

SQL DECODE 기본 문법

SQL DECODE 함수의 기본 문법은 다음과 같습니다.

DECODE(
    비교대상,
    비교값1, 결과값1,
    비교값2, 결과값2,
    기본값
)

동작 방식은 매우 간단합니다.

비교대상 값이 비교값과 일치하면 해당 결과값을 반환합니다.

모든 조건에 해당하지 않으면 마지막 기본값을 반환합니다.

SQL DECODE는 단순 비교 조건을 매우 간결하게 작성할 수 있습니다. 더 많은 정보를 확인하고 SQL DECODE 문법을 학습해보세요.

SQL DECODE 기본 예제

직원의 부서번호를 부서명으로 변경해보겠습니다.

SELECT ENAME,
       DECODE(
           DEPTNO,
           10, 'ACCOUNTING',
           20, 'RESEARCH',
           30, 'SALES',
           'ETC'
       ) AS DEPT_NAME
FROM EMP;

실행 결과 예시

이름부서명
SMITHRESEARCH
ALLENSALES
KINGACCOUNTING

SQL DECODE 함수는 코드값을 사람이 읽기 쉬운 값으로 변환할 때 자주 사용됩니다.

더 많은 정보를 확인하고 SQL 데이터 변환 방법을 익혀보세요.

SQL DECODE 실행 원리

SQL DECODE는 위에서 아래 순서로 비교를 수행합니다.

예를 들어

DECODE(
    JOB,
    'MANAGER', '관리자',
    'ANALYST', '분석가',
    '기타'
)

JOB 값이 MANAGER이면 관리자 반환

JOB 값이 ANALYST이면 분석가 반환

둘 다 아니면 기타 반환

이와 같이 SQL DECODE는 단순 비교 조건에 매우 적합합니다.

더 많은 정보를 확인하고 SQL DECODE 동작 원리를 이해해보세요.

SQL DECODE와 CASE WHEN 비교

SQLD 시험에서 가장 자주 출제되는 부분입니다.

동일한 기능을 CASE WHEN으로 작성하면 다음과 같습니다.

DECODE

SELECT DECODE(
       DEPTNO,
       10,'ACCOUNTING',
       20,'RESEARCH',
       'ETC')
FROM EMP;

CASE WHEN

SELECT CASE
           WHEN DEPTNO = 10 THEN 'ACCOUNTING'
           WHEN DEPTNO = 20 THEN 'RESEARCH'
           ELSE 'ETC'
       END
FROM EMP;

실행 결과는 동일합니다.

더 많은 정보를 확인하고 SQL 조건 함수 차이를 학습해보세요.

SQL DECODE와 CASE WHEN 차이점

SQLD 시험에 자주 출제되는 핵심 내용입니다.

구분DECODECASE WHEN
지원 DBOracle대부분 DB
조건 방식단순 비교복합 조건 가능
가독성보통높음
ANSI 표준아님표준 SQL
SQLD 출제 빈도높음매우 높음

최근 실무에서는 SQL CASE WHEN 사용 비율이 더 높습니다.

하지만 Oracle 환경에서는 SQL DECODE도 여전히 많이 사용됩니다.

더 많은 정보를 확인하고 SQL 함수 선택 기준을 알아보세요.

SQL DECODE와 집계 함수 함께 사용하기

실무에서는 집계 함수와 함께 사용하는 경우가 많습니다.

예를 들어 부서별 직원 수를 계산해보겠습니다.

SELECT SUM(
       DECODE(DEPTNO,10,1,0)
       ) AS DEPT10_CNT
FROM EMP;

결과

10번 부서 직원 수
3

SQL DECODE를 활용하면 조건별 집계를 쉽게 수행할 수 있습니다.

더 많은 정보를 확인하고 SQL 데이터 분석 기법을 익혀보세요.

SQL DECODE를 이용한 등급 분류

코드값을 등급으로 변환하는 경우도 많습니다.

SELECT ENAME,
       DECODE(
           GRADE,
           'A','우수',
           'B','양호',
           'C','보통',
           '기타'
       )
FROM SCORE;

결과

이름등급
김철수우수
이영희양호

실제 업무에서도 코드 테이블 대신 SQL DECODE를 사용하는 경우가 있습니다.

더 많은 정보를 확인하고 SQL 실무 활용법을 학습해보세요.

SQL DECODE 사용 시 주의사항

SQL DECODE를 사용할 때 자주 하는 실수가 있습니다.

범위 조건 사용 불가

다음 SQL은 작성할 수 없습니다.

DECODE(
    SAL > 3000,
    TRUE,'고급여'
)

SQL DECODE는 단순 값 비교만 가능합니다.

범위 조건은 CASE WHEN을 사용해야 합니다.

더 많은 정보를 확인하고 SQL 함수 활용 범위를 이해해보세요.

가독성 저하

조건이 많아질수록 SQL DECODE는 읽기 어려워집니다.

예를 들어 10개 이상의 조건이 들어가면 SQL CASE WHEN이 훨씬 가독성이 좋습니다.

더 많은 정보를 확인하고 SQL 작성 품질을 향상시켜보세요.

SQLD 시험에서 DECODE가 중요한 이유

SQLD 시험에서는 SQL DECODE 관련 문제가 꾸준히 출제됩니다.

특히 다음 개념은 반드시 이해해야 합니다.

출제 포인트중요도
DECODE 기본 문법매우 높음
CASE WHEN 비교매우 높음
실행 결과 예측매우 높음
집계 함수 조합높음
Oracle 함수 특징높음

실제 SQLD 시험에서는 SQL DECODE를 CASE WHEN으로 변환하는 문제가 자주 등장합니다.

더 많은 정보를 확인하고 SQLD 핵심 개념을 정리해보세요.

자주 묻는 질문(FAQ)

SQL DECODE와 CASE WHEN 중 무엇을 사용하는 것이 좋나요?

최근에는 가독성과 확장성이 좋은 SQL CASE WHEN을 더 많이 사용합니다. 더 많은 정보를 확인하고 SQL 작성 방법을 개선해보세요.

SQLD 시험에 DECODE 문제가 많이 나오나요?

네. CASE WHEN과 함께 비교하는 문제가 자주 출제됩니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.

SQL DECODE는 Oracle에서만 사용 가능한가요?

네. SQL DECODE는 Oracle 전용 함수입니다. 다른 DBMS에서는 CASE WHEN을 사용하는 것이 일반적입니다. 더 많은 정보를 확인하고 SQL 표준 문법을 학습해보세요.

마무리

SQL DECODE 함수는 Oracle 환경에서 널리 사용되는 조건 함수입니다. 단순 값 비교를 간결하게 작성할 수 있다는 장점이 있지만 복잡한 조건은 SQL CASE WHEN이 더 적합합니다. SQLD 시험에서는 SQL DECODE와 CASE WHEN의 차이, 실행 결과, 활용 방법이 자주 출제되므로 반드시 함께 학습하는 것을 추천합니다. 더 많은 정보를 확인하고 다음 단계인 SQL GROUPING SETS 사용법도 함께 학습해보세요.

관련 글 보기