Devleop/MySQL

[MySQL] CASE 문 : 조건에 따라 값 정하기 (CASE WHEN THEN END)

hwajae 2023. 5. 6. 00:09
반응형

CASE WHEN THEN ELSE END 

SQL 문제를 풀다 보면 CASE에 따라 조건을 나눠서 출력하라는 것을 종종 볼 수 있다. 그럴 경우 사용해주면 유용하다.

우선 기본적인 형태부터 보고 가자.

SELECT
    CASE
        WHEN(조건A) THEN A
        WHEN(조건B) THEN B
		ELSE C
END AS 원하는 컬럼명
FROM TABLE
;

조건 A 를 만족할 땐 A라 출력하고, B를 만족하면 B 그 외에는 다 C라고 출력하는 간단한 sql 쿼리이다.

 

실제 예시를 통해 자세히 알아보자. 

select * 
from FILM;

위 쿼리를 실행하면 결과 값은 아래와 같다. 

FILM TABLE

하늘색으로 네모 박스 친 부분을 보면 LENGTH가 영화 길이를 나타내는 것 같다.

영화 길이에 따라 값을 한번 저장해보려고 한다.

LENGTH RESULT
0 ~ 49 A
50 ~ 99 B
100 ~ 149 C
그 외 전부 D
SELECT FILM_ID, TITLE, LENGTH,
CASE 
	WHEN(LENGTH BETWEEN 0 AND 49)	THEN 'A'
	WHEN(LENGTH BETWEEN 50 AND 99) 	THEN 'B'
	WHEN(LENGTH BETWEEN 100 AND 149) THEN 'C'
    ELSE  'D'
END AS 'NEW COLUMN'
FROM FILM;

 

결과 값

원하는대로 결과 값을 얻을 수 있었다. 활용 빈도가 높은 거 같으니 반드시 알아가도록 하자.

 

반응형