Tags
- Article & User
- 완전검색
- Queue
- migrations
- 이진트리
- 큐
- outer join
- 뷰
- drf
- DB
- stack
- 그리디
- update
- create
- 백트래킹
- count
- Tree
- ORM
- 트리
- delete
- distinct
- Vue
- Django
- N:1
- 스택
- 쟝고
- regexp
- M:N
- 통계학
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
CASE WHEN 문 본문
CASE WHEN이란?
"CASE WHEN" 구문은 조건에 따라 다른 값을 반환하거나 특정 작업을 수행할 수 있는 강력한 조건문입니다.
CASE WHEN은 프로그래밍 언어의 if-else 문과 유사하며, SQL에서 데이터 조회, 변환, 집계 등에 자주 사용됩니다.
CASE WHEN 구문
1. 단순 CASE
단순 비교를 기반으로 조건을 평가
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
2. 검색 CASE
조건식을 기반으로 평가
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
CASE와 IF의 차이
예제
1. 급여 범위를 기준으로 분류
문제: 급여가 7000 이상이면 "High", 그렇지 않으면 "Low"로 표시
SELECT employee_id,
name,
salary,
CASE
WHEN salary >= 7000 THEN 'High'
ELSE 'Low'
END AS salary_level
FROM Employees;
2. 여러 조건 처리
문제: 급여 수준을 "High", "Medium", "Low"로 세분화
SELECT employee_id,
name,
salary,
CASE
WHEN salary >= 10000 THEN 'High'
WHEN salary >= 5000 THEN 'Medium'
ELSE 'Low'
END AS salary_level
FROM Employees;
3. CASE를 SELECT문에서 사용
문제: 직원 이름이 "Alice"이면 "관리자", 아니면 "직원"으로 표시
SELECT employee_id,
name,
CASE
WHEN name = 'Alice' THEN 'Manager'
ELSE 'Staff'
END AS role
FROM Employees;
4. CASE를 ORDER BY에서 사용
문제: 급여를 "Low", "Medium", "High" 순서로 정렬
SELECT employee_id,
name,
salary
FROM Employees
ORDER BY
CASE
WHEN salary >= 10000 THEN 1
WHEN salary >= 5000 THEN 2
ELSE 3
END;
'SQL > 개념' 카테고리의 다른 글
RIGHT 함수 (0) | 2024.11.18 |
---|---|
LIKE 연산자 (0) | 2024.11.17 |
COALESCE 함수 (0) | 2024.11.15 |
REGEXP 함수 (MySQL) (0) | 2024.11.14 |
IF 함수 (MySQL) (0) | 2024.11.13 |