본문 바로가기

MySQL

MySQL 조회 결과를 다르게 표현하기

프로그래머스 중성화 여부 파악하기 문제를 풀어보던 중 평소에는 전혀 사용하지 않던 기능이 필요하게 됐다.

 

쿼리문에서 결과의 종류에 따라 타 언어에서 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;