CASE와 WHERE의 차이는 목적과 동작 방식에서 크게 다릅니다.
1. CASE와 WHERE의 차이
- CASE는 데이터를 변형(가공)하는 용도로 사용됩니다. 즉, SELECT 절에서 특정 조건에 따라 값을 변환하거나 새로운 컬럼 값을 생성하는 데 사용됩니다.
- WHERE은 **필터링(데이터를 선택하는 용도)**로 사용됩니다. 즉, 특정 조건을 만족하는 행만 결과에 포함되도록 제한합니다.
2. 사용 예시 비교
CASE 사용 예시 (데이터 가공)
SELECT id,
name,
age,
CASE
WHEN age < 18 THEN '미성년자'
WHEN age BETWEEN 18 AND 64 THEN '성인'
ELSE '노인'
END AS age_group
FROM users;
📌 설명: age 값을 기준으로 나이를 그룹화하여 새로운 컬럼(age_group)을 생성합니다.
WHERE 사용 예시 (데이터 필터링)
SELECT id, name, age
FROM users
WHERE age >= 18;
설명: age가 18 이상인 행만 선택하여 결과를 반환합니다.
3. CASE와 WHERE을 함께 사용하는 경우
SELECT id, name, age
FROM users
WHERE
CASE
WHEN age >= 18 THEN TRUE
ELSE FALSE
END;
설명: WHERE절에서 CASE를 사용할 수도 있지만, 일반적으로 CASE 없이 WHERE age >= 18처럼 조건문만 쓰는 것이 더 직관적입니다.
4. 핵심 정리
비교 항목 CASE WHERE
목적 | 데이터를 가공하여 새로운 컬럼 값 생성 | 특정 조건에 맞는 행을 필터링 |
위치 | SELECT, ORDER BY 등 | WHERE, HAVING 등 |
반환값 | 조건에 따라 변형된 컬럼 값 | TRUE/FALSE(조건을 만족하는 행만 반환) |
✔ CASE는 데이터를 변형(변환)하는 용도로 사용
✔ WHERE은 데이터를 필터링(제거)하는 용도로 사용
CASE를 WHERE처럼 쓰는 건 가능하지만 일반적으로 성능과 가독성 측면에서 권장되지 않습니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스 MySQL] 년, 월, 성별 별 상품 구매 회원 수 구하기 - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
---|---|
[프로그래머스 SQL] 입양 시각 구하기(1) - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
[프로그래머스 MySQL] 가격대 별 상품 개수 구하기 - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
[프로그래머스][SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.06.09 |
[프로그래머스][SQL] 성분으로 구분한 아이스크림 총 주문량 (0) | 2024.06.08 |