반응형
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;
위 쿼리를 실행하면 결과 값은 아래와 같다.
하늘색으로 네모 박스 친 부분을 보면 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;
원하는대로 결과 값을 얻을 수 있었다. 활용 빈도가 높은 거 같으니 반드시 알아가도록 하자.
반응형
'Devleop > MySQL' 카테고리의 다른 글
[MySQL] JOIN : 테이블 합치기 (INNER, LEFT, RIGHT, FULL OUTER) (1) | 2023.05.06 |
---|---|
[MySQL] 원하는 문자열 부분 가져오기 (LEFT, MID, RIGHT) (0) | 2023.05.06 |
[MySQL] GROUP : 데이터 그룹화, 집계 함수 (HAVING, COUNT, SUM, MAX, MIN, AVG) (1) | 2023.05.06 |