[PostgreSQL] CASE

도톨이·2024년 4월 1일
0

SQL

목록 보기
15/19

CASE

CASE 문을 통해 특정 조건이 맞을 때만 SQL 코드를 실행할 수 있다.
다른 프로그래밍 언어의 IF/ELSE 와 비슷하다.

CASE 를 사용하는 두가지 주요 방법이 있다. 아래 문법으로 사용한다.

  1. 일반적인 CASE 문
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE some_other_result
END
  1. CASE Expression 문
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE some_other_result
END

pgadmin 으로 실습을 해보자.
이전에 실습했던 dvdrental 데이터베이스에서 쿼리툴을 열어 customer 테이블을 확인해보자.

customer_id 에서 고객 id 가 100이하면 프리미엄을, 100에서 200사이이면 플러스를 그 외는 노멀 등급을 부여하고 싶다. 이럴때 case 를 활용하면 된다.

SELECT customer_id, 
CASE 
	WHEN (customer_id <= 100) THEN 'Preminum'
	WHEN (customer_id BETWEEN 100 and 200) THEN 'Plus'
	ELSE 'Normal'

END

FROM customer

END 키워드 다음에 AS 를 넣어서 case 칼럼에 이름을 부여할 수도 있다. customer_class 라는 이름을 붙여주자.

SELECT customer_id, 
CASE 
	WHEN (customer_id <= 100) THEN 'Preminum'
	WHEN (customer_id BETWEEN 100 and 200) THEN 'Plus'
	ELSE 'Normal'

END AS customer_class

FROM customer

이번엔 고객 중에 랜덤으로 이벤트 경품을 제공하려한다. 고객아이디를 무작위로 뽑아서 1등2등을 정하려면 다음처럼 CASE 뒤에 expression 을 추가할 수 있다.

profile
Computer Engineering

0개의 댓글

관련 채용 정보