MySQL에서 CASE는 조건에 따라 다른 결과를 반환할 수 있도록 해주는 제어문(Conditional Statement)입니다. SQL에서 조건부 로직을 처리할 때 사용하며, 프로그래밍 언어의 if-else 문과 유사한 역할을 합니다. 주로 SELECT, UPDATE, 또는 다른 SQL 문 안에서 활용됩니다.
CASE 문의 기본 문법
1. CASE WHEN 형태
CASE
WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 기본값
END
2. CASE (값 기반) 형태
CASE 값
WHEN 값1 THEN 결과1
WHEN 값2 THEN 결과2
...
ELSE 기본값
END
CASE 문의 구성요소
- CASE: 조건부 로직을 시작하는 키워드입니다.
- WHEN: 조건을 정의합니다.
- THEN: 조건이 참일 때 반환할 값을 정의합니다.
- ELSE: 모든 조건이 거짓일 경우 반환할 기본값을 정의합니다(필수가 아님).
- END: CASE 문을 종료합니다.
CASE WHEN 형태 예시
1. 점수에 따라 학점 부여
SELECT
이름,
점수,
CASE
WHEN 점수 >= 90 THEN 'A'
WHEN 점수 >= 80 THEN 'B'
WHEN 점수 >= 70 THEN 'C'
ELSE 'F'
END AS 학점
FROM 학생;
CASE (값 기반) 형태 예시
2. 특정 값에 따라 결과 반환
SELECT
상품명,
상품종류,
CASE 상품종류
WHEN '전자기기' THEN '전자'
WHEN '의류' THEN '패션'
WHEN '식품' THEN '음식'
ELSE '기타'
END AS 분류
FROM 상품;
CASE 문을 UPDATE에 활용
3. 특정 조건에 따라 데이터 갱신
UPDATE 직원
SET 급여 = CASE
WHEN 부서 = '개발' THEN 급여 * 1.1
WHEN 부서 = '마케팅' THEN 급여 * 1.05
ELSE 급여
END;
CASE 문을 ORDER BY에 활용
4. 조건부 정렬
SELECT *
FROM 직원
ORDER BY
CASE
WHEN 부서 = '개발' THEN 1
WHEN 부서 = '영업' THEN 2
ELSE 3
END;
'언어 > MySQL' 카테고리의 다른 글
[MySQL] JOIN, LEFT JOIN, RIGHT JOIN (0) | 2025.02.21 |
---|---|
[MySQL] concat 함수 (0) | 2025.01.25 |