HIT해
[SQL] CASE 문 본문
728x90
CASE WHEN THEN END ( 조건문 )
1. CASE 문 개요
CASE 문은 SQL에서 조건부 처리를 위해 사용되는 구문입니다. 이는 프로그래밍 언어의 if-then-else 문과 유사한 기능을 합니다.
2. CASE 문 문법
CASE 문에는 두 가지 기본 형식이 있습니다:
2.1 단순 CASE 문
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
[ELSE else_result]
END
2.2 검색 CASE 문
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
[ELSE else_result]
END
3. CASE 문 사용 예시
3.1 단순 CASE 문 예시
SELECT
product_name,
price,
CASE category
WHEN 'Electronics' THEN 'High-tech item'
WHEN 'Clothing' THEN 'Fashion item'
WHEN 'Food' THEN 'Grocery item'
ELSE 'Other item'
END AS product_type
FROM
products;
이 쿼리는 제품의 카테고리에 따라 제품 유형을 분류합니다.
3.2 검색 CASE 문 예시
SELECT
employee_name,
salary,
CASE
WHEN salary < 30000 THEN 'Low'
WHEN salary BETWEEN 30000 AND 50000 THEN 'Medium'
WHEN salary > 50000 THEN 'High'
END AS salary_category
FROM
employees;
이 쿼리는 직원의 급여 수준에 따라 카테고리를 지정합니다.
3.3 집계 함수와 함께 사용하는 예시
SELECT
department,
COUNT(*) AS total_employees,
SUM(CASE WHEN performance_rating > 8 THEN 1 ELSE 0 END) AS high_performers
FROM
employees
GROUP BY
department;
이 쿼리는 각 부서별 총 직원 수와 고성과자(성과 평가 8점 초과) 수를 계산합니다.
3.4 UPDATE 문에서 사용하는 예시
UPDATE products
SET price =
CASE
WHEN stock_quantity > 100 THEN price * 0.9
WHEN stock_quantity <= 20 THEN price * 1.1
ELSE price
END;
이 쿼리는 재고 수량에 따라 제품 가격을 조정합니다.
4. CASE 문 사용 시 주의사항
- ELSE 절을 생략하면 조건에 맞지 않는 경우 NULL이 반환됩니다.
- CASE 문은 첫 번째로 TRUE가 되는 조건에서 멈춥니다.
- CASE 문의 모든 반환 값은 같은 데이터 타입이어야 합니다.
5. CASE 문의 장점
- 가독성: 복잡한 조건부 로직을 명확하게 표현할 수 있습니다.
- 유연성: SELECT, WHERE, ORDER BY 등 다양한 SQL 구문에서 사용할 수 있습니다.
- 성능: 적절히 사용하면 복잡한 조건부 로직을 효율적으로 처리할 수 있습니다.
'자격증 공부 > SQLD' 카테고리의 다른 글
[SQL/프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 ( MAX ) (0) | 2024.11.02 |
---|---|
SQLD 합격 후기 및 공부 방법(3일/독학) (0) | 2023.11.09 |