프로그래머스 중성화 여부 파악하기 문제를 풀어보던 중 평소에는 전혀 사용하지 않던 기능이 필요하게 됐다.
쿼리문에서 결과의 종류에 따라 타 언어에서 switch 또는 if로 처리하듯, 결과를 정해진 종류로 필터해야 하는 경우가 생겼다.
실무에서 사용할지는 모르겠으나, 오늘 처음 알게 된 쿼리에 대해 기록하고자 한다.
PEOPLE 구조가 아래와 같다고 생각해보자.
ID | NAME | AGE |
1 | 코코코 | 4 |
2 | 가나다 | 15 |
3 | 홍길동 | 34 |
4 | 김아무 | 21 |
5 | 하지만 | 25 |
이 때, 0 ~ 7세는 baby, 8 ~ 19세는 student, 그 외에는 adult 라고 표현하여 아래와 같이 결과를 뽑아내려 한다.
ID | NAME | Filter |
1 | 코코코 | baby |
2 | 가나다 | student |
3 | 홍길동 | adult |
4 | 김아무 | adult |
5 | 하지만 | adult |
위 처리를 위해 실행한 MySQL Query를 기입해둔다.
SELECT ID, NAME, (CASE
WHEN AGE < 8 THEN "baby"
WHEN AGE < 20 THEN "student"
ELSE "adult" END) AS Filter
FROM PEOPLE;
'MySQL' 카테고리의 다른 글
MySQL Foreign Key 설정 오류 해결 (Cannot add foreign key constraint) (0) | 2022.06.30 |
---|