개발/Database

[MYSQL] 가져온 값을 조건에 따라 값 바꾸기(case - when - end 문)

신매력 2012. 8. 2. 14:58

집계 쿼리 만들 때 쓰이는 것...


Group by 를 써서 데이터를 가져왔는데

그 데이터는 숫자 코드로 되어있다(1 :사과 , 2: 포도)


숫자 코드는 보기 안좋으니까 글자로 바꾸려는데, 

쿼리에서 조건문을 쓰려면 어떻게 할까?



SELECT

CODE,

COUNT(*) AS COUNT

FROM TEST

WHERE

DTTM = "20120802";

GROUP BY CODE



가져와진 값이 아래와 같다고 치자


CODE 

COUNT 

 1

50 

 2

70 



CODE가 1이면 사과의 합

CODE가 2이면 포도의 합이라고 바꾸고 싶으면???



SELECT

CASE CODE WHEN 1 THEN '사과의 합' ELSE '포도의 합' END,

COUNT(*) AS COUNT

FROM TEST

WHERE

DTTM = "20120802";

GROUP BY CODE



이러면 된다.



CASE CODE WHEN 1 THEN '사과의 합' ELSE '포도의 합' END,

CODE컬럼이 1이면 '사과의 합'으로 바꾸고

1이 아니면 '포도의 합'으로 바꾼다.



그럼 아래같이 데이터가 출력될 것이다



CODE 

COUNT 
 사과의 합 50 

 포도의 합

70 





조건을 더 추가하고 싶으면 

컬럼명 WHEN 1 THEN '바꿀값1' WHEN 2 THEN '바꿀값2'.... ELSE 3 END

WHEN 바꿀 값 THEN  이 것을 더 추가해주면 된다