이런 형태의 데이터가 있다고 칩니다.
wdate라는건 아무렇게나 입력했지만, 날짜라고 칩니다.
이런 형태의 데이터를
날짜 / 코드1 / 코드2 / 코드3 / 코드4
100
101
102
이런 형태로 데이터를 뽑고 싶을 경우가 있습니다.
이런 경우엔 DECODE 기능을 이용해 형태를 재 정의를 할 수 있습니다.
select wdate,
sum(decode (code, 1, count)) as code1,
sum(decode (code, 2, count)) as code2,
sum(decode (code, 3, count)) as code3,
sum(decode (code, 4, count)) as code4
from test
group by wdate
order by wdate;
decode는 삼항연산자와 비슷한 느낌으로 사용하면 됩니다.
code가 1일경우 count는 code1로 보내고 , 2일경우는 code2로 보냅니다.
그리고 group by 를 이용해 월별 합산을 만들 수 있습니다.
가령 페이지 한개를 활용해 QueryString에 따라 여러가지 페이지로 분산 시킬려고 할 경우, 기존에는 if else 문, 또는 switch case 를 활용해서 불러오는 값을 다르게하거나 페이지를 강제로 이동 시키는 방법이 있었다. 하지만 위의 기능들을 활용하면, QueryString 자체를 Class명으로 하여 호출 할 수 있기 때문에 코드가 매우 간결해지며 좀 더 순수한 기능만을 가진 클래스가 된다.