SQL CASE WHEN 사용법 완벽 정리|조건문 활용부터 SQLD 시험 대비까지

요약

SQL CASE WHEN은 조건에 따라 다른 결과를 반환하는 SQL 조건문입니다. 프로그래밍 언어의 IF문과 비슷한 역할을 하며 실무에서 데이터 분류, 등급 산정, 통계 분석 등에 매우 자주 사용됩니다. SQLD 시험에서도 꾸준히 출제되는 핵심 문법으로 반드시 이해해야 하는 개념입니다.

SQL CASE WHEN이란?

SQL CASE WHEN은 특정 조건에 따라 다른 값을 반환하는 SQL 문법입니다.

프로그래밍 언어의 IF, ELSE IF, ELSE와 비슷한 역할을 수행합니다.

예를 들어 직원 급여에 따라 등급을 나누거나 고객 구매 금액에 따라 VIP 여부를 구분할 때 SQL CASE WHEN을 사용할 수 있습니다.

실무에서는 데이터 분석과 리포트 작성 시 매우 자주 활용됩니다.

SQL CASE WHEN은 SQLD 시험에서도 빈출되는 핵심 문법이므로 반드시 익혀두는 것이 좋습니다. 더 많은 정보를 확인하고 SQL CASE WHEN 기본 개념을 학습해보세요.

SQL CASE WHEN 기본 문법

SQL CASE WHEN의 기본 문법은 다음과 같습니다.

SELECT CASE
           WHEN 조건1 THEN 결과1
           WHEN 조건2 THEN 결과2
           ELSE 결과3
       END
FROM 테이블명;

조건을 순서대로 확인한 후 처음 만족하는 결과를 반환합니다.

모든 조건을 만족하지 않으면 ELSE 구문이 실행됩니다.

SQL CASE WHEN은 가독성이 뛰어나고 복잡한 조건도 쉽게 표현할 수 있습니다. 더 많은 정보를 확인하고 SQL CASE WHEN 문법을 익혀보세요.

SQL CASE WHEN 기본 예제

직원 급여에 따라 등급을 나누는 예제를 살펴보겠습니다.

SELECT ENAME,
       SAL,
       CASE
           WHEN SAL >= 3000 THEN '고급여'
           WHEN SAL >= 2000 THEN '중급여'
           ELSE '일반급여'
       END AS 급여등급
FROM EMP;

실행 결과 예시

이름급여급여등급
KING5000고급여
JONES2975중급여
SMITH800일반급여

SQL CASE WHEN을 사용하면 데이터를 원하는 기준으로 쉽게 분류할 수 있습니다. 더 많은 정보를 확인하고 SQL 데이터 분류 방법을 익혀보세요.

SQL CASE WHEN과 집계 함수 함께 사용하기

실무에서 매우 자주 사용하는 형태입니다.

부서별 고급여 직원 수를 계산해보겠습니다.

SELECT DEPTNO,
       SUM(
           CASE
               WHEN SAL >= 3000 THEN 1
               ELSE 0
           END
       ) AS 고급여인원
FROM EMP
GROUP BY DEPTNO;

결과 예시

부서번호고급여인원
101
202
300

SQL CASE WHEN과 집계 함수를 조합하면 다양한 분석이 가능합니다.

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

SQL CASE WHEN과 COUNT 활용하기

조건별 건수를 계산하는 경우도 많습니다.

SELECT COUNT(
           CASE
               WHEN SAL >= 3000 THEN 1
           END
       ) AS 고급여직원수
FROM EMP;

특정 조건을 만족하는 데이터 개수를 구할 수 있습니다.

실무 보고서 작성 시 자주 사용하는 기법입니다.

SQL CASE WHEN을 활용하면 복잡한 조건 분석도 간단하게 처리할 수 있습니다. 더 많은 정보를 확인하고 SQL 실무 활용법을 익혀보세요.

SQL CASE WHEN과 ORDER BY 함께 사용하기

정렬 기준을 직접 지정할 수도 있습니다.

SELECT ENAME,
       JOB
FROM EMP
ORDER BY CASE
             WHEN JOB = 'MANAGER' THEN 1
             WHEN JOB = 'ANALYST' THEN 2
             ELSE 3
         END;

위 SQL은 직무 순서를 직접 지정하여 정렬합니다.

일반적인 알파벳 정렬이 아닌 원하는 순서로 데이터를 조회할 수 있습니다.

더 많은 정보를 확인하고 SQL 정렬 활용법을 익혀보세요.

SQL CASE WHEN 중첩 사용하기

SQL CASE WHEN은 중첩도 가능합니다.

SELECT ENAME,
       CASE
           WHEN SAL >= 3000 THEN
               CASE
                   WHEN COMM IS NOT NULL THEN '고급여+커미션'
                   ELSE '고급여'
               END
           ELSE '일반직원'
       END AS 구분
FROM EMP;

복잡한 조건도 표현할 수 있지만 지나치게 중첩하면 가독성이 떨어질 수 있습니다.

실무에서는 적절한 수준으로 사용하는 것이 좋습니다.

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

SQL CASE WHEN과 DECODE 차이

Oracle에서는 DECODE 함수도 사용할 수 있습니다.

예시

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

하지만 SQL CASE WHEN이 더 직관적이고 범용성이 높습니다.

구분CASE WHENDECODE
표준 SQL가능불가능
가독성높음보통
조건식다양함단순 비교
SQLD 출제매우 높음높음

최근에는 SQL CASE WHEN 사용이 일반적입니다.

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

SQLD 시험에서 자주 출제되는 CASE WHEN 문제

SQLD 시험에서는 다음 유형이 자주 등장합니다.

실행 결과 예측

SELECT CASE
           WHEN SAL >= 3000 THEN 'A'
           ELSE 'B'
       END
FROM EMP;

집계 함수와 결합

SELECT SUM(
       CASE
           WHEN SAL >= 3000 THEN 1
           ELSE 0
       END)
FROM EMP;

CASE WHEN과 GROUP BY 조합

실제 시험에서는 결과값을 계산하는 문제가 자주 출제됩니다.

더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.

SQL CASE WHEN 사용 시 주의사항

SQL CASE WHEN을 사용할 때 자주 하는 실수가 있습니다.

ELSE 누락

ELSE를 작성하지 않으면 조건에 해당하지 않는 경우 NULL이 반환됩니다.

조건 순서 오류

조건은 위에서 아래로 평가됩니다.

CASE
    WHEN SAL >= 1000 THEN '일반'
    WHEN SAL >= 3000 THEN '고급'
END

위 SQL은 SAL이 3000 이상이어도 첫 번째 조건에 걸립니다.

조건 순서를 신중하게 작성해야 합니다.

더 많은 정보를 확인하고 SQL 오류를 예방해보세요.

SQLD 시험에서 CASE WHEN이 중요한 이유

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

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

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

SQL CASE WHEN은 SQLD뿐 아니라 실무에서도 매우 자주 사용하는 문법입니다.

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

자주 묻는 질문(FAQ)

SQL CASE WHEN은 SQLD 시험에 많이 나오나요?

네. SQLD 시험에서 꾸준히 출제되는 핵심 문법 중 하나입니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.

CASE WHEN과 IF는 같은 건가요?

역할은 비슷하지만 SQL에서는 CASE WHEN을 사용하는 것이 표준 방식입니다. 더 많은 정보를 확인하고 SQL 조건문 개념을 이해해보세요.

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

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

마무리

SQL CASE WHEN은 조건에 따라 다른 값을 반환하는 매우 강력한 SQL 문법입니다. 데이터 분류, 통계 분석, 보고서 작성 등 다양한 업무에서 활용되며 SQLD 시험에서도 자주 출제됩니다. 특히 집계 함수와 함께 사용하는 SQL CASE WHEN은 실무 활용도가 매우 높기 때문에 반드시 익혀두는 것이 좋습니다. 더 많은 정보를 확인하고 다음 단계인 SQL NULL 처리 함수 NVL과 COALESCE도 함께 학습해보세요.

관련 글 보기