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를 사용하여 컬럼에 이름을 지정하세요.
챌린지
쉬움사용 가능한 테이블 및 컬럼:
<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 분기의 순서가 중요하다는 점에 유의하세요. 첫 번째로 일치하는 조건이 우선 적용됩니다.
치트 시트
CASE는 SELECT 내부에서 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
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.