Menu
Coddy logo textTech

CASE WHEN 구문

Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨 — 27개 중 1번째.

CASE 표현식은 SQL을 위한 if/else if/else입니다. 이것은 SELECT (또는 ORDER BY, 또는 WHERE) 내부에 위치하며 행당 하나의 값을 생성합니다.

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           WHEN score >= 60 THEN 'C'
           ELSE 'F'
       END AS grade
FROM students

WHEN은 위에서 아래로 확인되며, 첫 번째로 일치하는 것이 선택됩니다. ELSE는 선택 사항입니다. ELSE가 없으면 일치하지 않는 행은 NULL이 됩니다.

항상 END로 끝내고 AS를 사용하여 컬럼에 이름을 지정하세요.

challenge icon

챌린지

쉬움

사용 가능한 테이블 및 컬럼:

  • <strong>employees</strong>: <strong>id</strong>, <strong>name</strong>, <strong>department</strong>, <strong>salary</strong>

각 직원에 대해 name, department, 그리고 다음과 같이 구성된 tier 컬럼을 반환하세요:

  • salary >= 150000일 때 'partner' (부서 상관없음)
  • department = 'eng' 이고 salary >= 100000일 때 'senior'
  • salary >= 60000일 때 'mid'
  • 그 외의 경우 'entry'

salary를 기준으로 내림차순으로 정렬하세요. WHEN 분기의 순서가 중요하다는 점에 유의하세요. 첫 번째로 일치하는 조건이 우선 적용됩니다.

치트 시트

CASESELECT 내부에서 if/else처럼 작동하며, 각 행마다 값을 생성합니다:

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           ELSE 'F'
       END AS grade
FROM students
  • 조건은 위에서 아래로 확인됩니다. 첫 번째로 일치하는 조건이 적용됩니다.
  • ELSE는 선택 사항입니다. ELSE가 없으면 일치하지 않는 행은 NULL을 반환합니다.
  • 항상 END로 닫아야 하며, AS를 사용하여 컬럼 이름을 지정합니다.

직접 해보기

SELECT name, department,
       -- `salary`와 `department`를 혼합한 여러 개의 `WHEN` 분기가 있는 등급
FROM employees
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

심화 과정의 모든 레슨