-
MySql - Case문 간단정리DataBase/MySql 2024. 8. 5. 22:58반응형
CASE문 개요
MySQL의 CASE문은 SQL 표준의 일부로, 조건에 따라 서로 다른 값을 반환할 수 있는 제어 흐름 함수입니다. CASE문은 주로 SELECT, UPDATE, DELETE 쿼리에서 사용되며, 복잡한 조건 논리를 단순화할 수 있습니다.
CASE문의 기본 문법
CASE
WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 결과N
END각 조건이 참이면 해당 조건에 해당하는 결과가 반환되며, 조건이 모두 거짓이면 ELSE 절의 결과가 반환됩니다. ELSE 절은 선택 사항이며, 생략할 경우 조건이 모두 거짓일 때 NULL을 반환합니다.
CASE문의 사용 예시
예시 1: 단순 CASE문
다음은 학생의 성적에 따라 등급을 매기는 예제입니다.
SELECT 학생이름,
성적,
CASE
WHEN 성적 >= 90 THEN 'A'
WHEN 성적 >= 80 THEN 'B'
WHEN 성적 >= 70 THEN 'C'
WHEN 성적 >= 60 THEN 'D'
ELSE 'F'
END AS 등급
FROM 성적표;위 쿼리는 성적표 테이블에서 각 학생의 성적에 따라 등급을 부여합니다. 성적이 90점 이상이면 'A', 80점 이상이면 'B', 70점 이상이면 'C', 60점 이상이면 'D', 그 외는 'F'로 등급이 매겨집니다.
예시 2: 복합 CASE문
다음은 직원의 부서와 근속 연수에 따라 보너스를 계산하는 예제입니다.
SELECT 직원이름,
부서,
근속연수,
CASE
WHEN 부서 = '영업' AND 근속연수 >= 5 THEN 1000
WHEN 부서 = '영업' AND 근속연수 < 5 THEN 500
WHEN 부서 = '개발' AND 근속연수 >= 3 THEN 800
ELSE 300
END AS 보너스
FROM 직원정보;이 쿼리는 직원정보 테이블에서 각 직원의 부서와 근속 연수를 기준으로 보너스를 계산합니다. 영업 부서에 속하면서 근속 연수가 5년 이상인 경우 1000, 5년 미만인 경우 500, 개발 부서에 속하면서 근속 연수가 3년 이상인 경우 800, 그 외의 경우 300의 보너스를 지급합니다.
CASE문을 활용한 복잡한 조건 처리
CASE문은 단순한 조건 외에도 복잡한 논리를 처리하는 데 유용합니다. 예를 들어, 특정 조건에 따라 다른 쿼리를 실행해야 하는 경우에도 사용할 수 있습니다.
예시 3: 여러 조건을 포함한 CASE문
SELECT 제품명,
가격,
재고수량,
CASE
WHEN 가격 > 100000 AND 재고수량 > 50 THEN '고가&대량'
WHEN 가격 > 100000 AND 재고수량 <= 50 THEN '고가&소량'
WHEN 가격 <= 100000 AND 재고수량 > 50 THEN '저가&대량'
ELSE '저가&소량'
END AS 제품분류
FROM 제품목록;이 쿼리는 제품목록 테이블에서 각 제품의 가격과 재고 수량에 따라 제품을 분류합니다. 가격이 100,000원 이상이고 재고 수량이 50개 이상이면 '고가&대량', 50개 이하이면 '고가&소량', 가격이 100,000원 이하이고 재고 수량이 50개 이상이면 '저가&대량', 그 외는 '저가&소량'으로 분류됩니다.
반응형'DataBase > MySql' 카테고리의 다른 글
MySql - OUTER JOIN(LEFT, RIGHT) (1) 2024.10.01 MySql - INNER JOIN (0) 2024.10.01 MySql - GROUP BY, ORDER BY, HAVING 간단 정리 (0) 2024.08.01 MySql - Count, Sum 함수(AVG, MIN, MAX) (0) 2024.08.01 Mysql - 기타 함수들(조건문) if, ifnull (0) 2023.10.12