DB 를 오라클 사용하는데 아래문장이 넘 해까려요... 좀 알려주세요. SUM(DECODE(SIGN(a.sys_date - b.sys_date), 1, c_tot,0)) ------------------------ AA SIGN 은 AA 가 음수이면 -1, 0이면 0 양수이면 1을 리턴해주잖아요.. 근데.. ...
하얀까마귀
•
2000.05.01 20:50
안녕하세요 하얀까마귀 입니다..
오라클의 DECODE문은 아주 많이 사용되는 함수중에 하나이고 그리고 그...
오라클의 DECODE문은 아주 많이 사용되는 함수중에 하나이고 그리고 그 효과 또한 상당
해서 많은사람이 애용하는 함수입니다...
이건 if .. then .. else 와 같은 기능을 합니다..
다시 말해서
DECODE(a,b,c,d ) 라고 했을때
이걸 풀어쓰면
if a = b then
Result := c
else Result := d;
입니다...
아시겠죠....
> SUM(DECODE(SIGN(a.sys_date - b.sys_date), 1, c_tot,0))
따라서 이문장을 해석하면
a.sys_Date > b.sys_Date 때에 c_tot의 값을 넘기고 그렇제 않으면 0을 리턴합니다..
그래서 합을 구하는 거죠...
a.sys_Date > b.sys_Date 인 레코드의 c_Tot총합을 구하는 거내요...
다르게 구현하는것 보다 decode로 구현하는게 빠르지만 이놈도 내부적으로 약간의
프로세스가 걸리기 때문에 남용하는건 않좋습니다..
그럼.. 즐거운시간 되세요
- 하얀까마귀 -
최은정 wrote:
> DB 를 오라클 사용하는데 아래문장이 넘 해까려요... 좀 알려주세요.
> SUM(DECODE(SIGN(a.sys_date - b.sys_date), 1, c_tot,0))
> ------------------------
> AA
>
> SIGN 은 AA 가 음수이면 -1, 0이면 0 양수이면 1을 리턴해주잖아요..
> 근데.. 그다음의,1 부
터 잘 해석이 안되네요..
>