Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 올라
- pmf
- CAC
- 한장으로끝내는비즈니스모델100
- 데이터분석
- 리텐션
- retention
- fundbox
- 핀테크
- 전환율
- mysql설치 #mysql #mysqluser #mysqlworkbench
- allra
- 팔방이익구조
- BM분석
- 그로스해킹
- 코호트
- aarrr
- 서말리포켓
- 머신러닝
- 역설구조
- 비즈니스모델
- sklearn
- activation
- 인게이지먼트
- 퍼널분석
- 셀프스토리지
- 활성화
- model_selection
- 선정산서비스
- 바로팜
Archives
- Today
- Total
데이터로그😎
[SQL기본] 조건문: IF v CASE WHEN 본문
MySQL에서 조건문은 데이터 분류, 가공, 정제 등의 목적으로 자주 사용됩니다. 대표적인 방식으로는 IF() 함수와 CASE WHEN 구문이 있으며, 두 방식은 구조와 기능 면에서 차이를 보입니다. 이번에는 이 두 조건문을 명확히 비교하고, 각각의 작동 방식과 실전 예시까지 함께 살펴보겠습니다.
✅ 공통점
- IF와 CASE WHEN은 모두 조건에 따라 서로 다른 값을 반환하는 데 사용됩니다.
- SELECT, WHERE, ORDER BY 등 다양한 SQL 문장에서 활용 가능합니다.
- 데이터 전처리, 분류, 출력값 제어 등에 유용합니다.
🔍 차이점 비교
항목IF() 함수CASE WHEN 구문
항목 | IF() 함수 | CASE WHEN 구문 |
문법 형태 | 함수(Function) | 구문(Syntax) |
조건 처리 방식 | 단일 조건 처리 (2분기) | 다중 조건 처리 (n분기) |
가독성 | 간단한 조건일 때 적합 | 복잡한 조건일수록 가독성이 높음 |
유연성 | 제한적 | 조건별 결과 처리에 매우 유연함 |
평가 방식 | 조건 한 개만 판단 | 조건을 위에서부터 순차적으로 판단 |
⚙️ 작동 방식
1. IF() 함수
IF(condition, value_if_true, value_if_false)
작동 순서:
- condition을 평가
- 결과가 TRUE이면 value_if_true 반환
- 결과가 FALSE 또는 NULL이면 value_if_false 반환
특징:
- 중첩 사용은 가능하지만 가독성이 떨어짐
- 단일 조건 판단에 적합
2. CASE WHEN 구문
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
작동 순서:
- 각 WHEN 조건을 위에서부터 차례로 평가
- 가장 먼저 참이 되는 조건의 result를 반환
- 조건을 만족하지 않으면 ELSE 결과 반환 (없으면 NULL)
특징:
- 다수의 조건 분기 처리에 적합
- 조건 우선순위가 중요한 로직에 활용 가능
- ELSE 생략 시 기본 반환값은 NULL
🧪 예시: 점수에 따른 등급 분류
1. IF() 사용 예시
SELECT
name,
IF(score >= 90, 'A',
IF(score >= 80, 'B',
IF(score >= 70, 'C', 'F')
)
) AS grade
FROM students;
2. CASE WHEN 사용 예시
SELECT
name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'F'
END AS grade
FROM students;
동일한 결과를 출력하지만, CASE WHEN은 구조적으로 더 명확하며 확장성도 높습니다.
📝 정리
IF와 CASE WHEN은 단순히 기능적 대체재가 아니라, 상황에 따라 선택해야 하는 도구입니다. 조건이 단순하다면 IF로 간결하게, 조건이 많고 복잡하다면 CASE WHEN으로 명확하게 구성하는 것이 좋습니다!
비교 항목 | IF 함수 | CASE WHEN 구문 |
조건 분기 수 | 2개(단일 조건) | 여러 개(n개 이상 가능) |
복잡한 조건 | 부적합 | 적합 |
가독성 | 낮음 (중첩 시 복잡도 ↑) | 높음 |
활용 권장 상황 | 간단한 조건 판단 | 복잡한 로직 또는 우선순위 판단 시 |
'# 1. 언어 > # 1.1. SQL' 카테고리의 다른 글
서브 쿼리 (0) | 2023.09.06 |
---|---|
ERD 표기법 (0) | 2023.09.06 |
python - mysql 연결 (0) | 2023.09.06 |
[SQL기본] JOIN (1) | 2023.09.05 |
[SQL기본] Basic Query (0) | 2023.09.05 |