섭섭의 공부/SQL

[MySQL]CASE 조건으로 라벨링하기

seobbseob 2021. 8. 2. 16:36

데이터를 보다 보면 카테고리 피쳐가 있는 경우가 있다.

 

이 경우 보통 값에는 단어로 들어가 있기보다, 숫자로 표현하고 그에 매칭 되는 단어를 약속하는 경우가 대다수이다.

 

데이터의 저장 공간을 아낄 수 있겠지만, 데이터를 보는 입장에서는 단번에 뜻을 파악하기 어려울 수 있다.

 

이때 CASE문을 사용하여 라벨링을 SQL에서 하기도 한다.

 

SELECT CASE 
	    WHEN A='B' THEN C
            WHEN D='E' THEN F
            ELSE 'G'
       END AS (word), *
FROM table name

CASE문 안에 어러개의 WHEN과 THEN을 쓸 수 있으며, 명시한 경우를 제외한 경우는 ELSE로 표현한다.

여러 개의 WHEN과 THEN을 사용할 때, 주의할 점은 앞에 나온 WHEN에 부합하는 데이터는 뒤에 오는 WHEN을 판별하는데 데이터로 들어가지 않는다는 점이다.

그리고 CASE문을 출력해보면, 테이블의 칼럼명이 코드와 똑같이 나오는데 이 경우 AS를 써서 간결하게 만들어 준다.

 

(참고 자료 - https://www.inflearn.com/users/@datarian 의 [백문이불여일타] 데이터 분석을 위한 고급, 중급, 기초 SQL)