집계 쿼리 만들 때 쓰이는 것...
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 이 것을 더 추가해주면 된다
'개발 > Database' 카테고리의 다른 글
MyBatis] 반복되는 쿼리 묶기 Sql , include 태그 (0) | 2012.09.05 |
---|---|
MyBatis] 쿼리에서 특정 문자 제거 (if 사용시) (3) | 2012.08.28 |
MySql] Insert Select 문 (1) | 2012.08.28 |
[MySql] 같은 컬럼의 행들에 한방에 update 하기 (4) | 2012.08.07 |
iBatis, myBatis에서 (공백) 문자 비교하기 (2) | 2012.07.30 |