반응형
SQL의 CASE WHEN
구문은 조건에 따라 다른 값을 반환하거나 특정 동작을 수행하도록 만드는 제어문입니다. 프로그래밍 언어에서의 if-else
문과 유사한 역할을 합니다.
기본 구조
CASE
WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 기본결과
END
CASE
: 조건문을 시작합니다.WHEN
: 조건을 정의합니다.THEN
: 조건이 참일 때 반환할 값을 지정합니다.ELSE
: 모든 조건이 거짓일 때 반환할 기본값을 지정합니다 (선택적).END
: 조건문을 종료합니다.
사용 예시
1. 조건에 따라 값을 반환
예를 들어, 학생의 점수에 따라 학점을 부여한다고 할 때:
SELECT
학생이름,
점수,
CASE
WHEN 점수 >= 90 THEN 'A'
WHEN 점수 >= 80 THEN 'B'
WHEN 점수 >= 70 THEN 'C'
WHEN 점수 >= 60 THEN 'D'
ELSE 'F'
END AS 학점
FROM 학생;
위 SQL은 학생 점수에 따라 학점을 계산하여 결과를 반환합니다.
2. 특정 조건에 따라 계산
상품의 판매량에 따라 할인율을 계산한다고 할 때:
SELECT
상품명,
판매량,
CASE
WHEN 판매량 > 100 THEN 판매량 * 0.2 -- 판매량이 100개 이상일 때 20% 할인
WHEN 판매량 > 50 THEN 판매량 * 0.1 -- 판매량이 50개 이상일 때 10% 할인
ELSE 0 -- 그 외에는 할인 없음
END AS 할인금액
FROM 상품;
3. WHERE 절에서 사용
CASE WHEN
은 SELECT
문뿐만 아니라 WHERE
절에서도 조건을 세부적으로 지정할 수 있습니다.
SELECT *
FROM 주문
WHERE
CASE
WHEN 회원등급 = 'VIP' THEN 주문금액 > 100000
ELSE 주문금액 > 50000
END;
VIP 회원의 경우 주문금액이 10만 원 이상인 경우만, 일반 회원은 5만 원 이상인 경우만 조회합니다.
주의점
CASE WHEN
은ELSE
를 생략할 수 있지만, 모든 조건이 거짓일 때NULL
이 반환됩니다.- 조건은 위에서부터 차례대로 평가되며, 첫 번째로 참인 조건이 실행됩니다. 따라서 조건 순서를 신중히 설정해야 합니다.
반응형
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[SQL] LIKE란? (0) | 2024.11.24 |
---|---|
[SQL] HAVING 절이란? (0) | 2024.11.24 |
[SQL] UPDATE문이란 (0) | 2024.10.30 |
[BigQuery] 빅쿼리에 CARTO 설치해서 지리함수 쓰기 (0) | 2024.07.15 |
[DBeaver] 디비버 설치 및 구글 빅쿼리 연결하기 (DBeaver with BigQuery) (0) | 2024.07.14 |
댓글