개발/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 이 것을 더 추가해주면 된다