decode문을 써서 0보다 작은 값이면 계산식으로 처리하고 아니면 ..... 0 4 3,244

by 한현우 [2009.12.16 18:43:12]


IF ( (janlcopen - chlqty - jgoqty) < 0 , (janlcopen - chlqty - jgoqty), 0)

위와 같은 계산식을 decode 문으로 처리 가능한지요.

0보다 작으면 (janlcopen - chlqty - jgoqty)

그렇지 않으면 0 이런식으로 처리할려고 하거든요.

고수님 한 수 가르쳐 주세요. 늘 감사합니다.

by 현 [2009.12.16 19:05:49]
sign 함수를 쓰세요.
select decode(sign(janlcopen - chlqty - jgoqty),-1,janlcopen - chlqty - jgoqty,0) from dual;

sign함수는 0보다 작으면 -1, 0이면 0을 0보다 크면 1을 반환합니다.

http://www.gurubee.net/lecture/1024

검색의 생활화~~!

by 마농 [2009.12.16 20:02:01]
LEAST(janlcopen - chlqty - jgoqty, 0)

by 손님 [2009.12.17 09:11:04]
case when ~~ 을 쓰셔도 되는데....

by 현 [2009.12.18 11:33:18]
ㅋㅋㅋ
그러게요..
저는 이상하게 왠만하면 case보다 decode를 쓰게 되더라구요.
첨 배울때 decode로 배워서 그런지, 역시 버릇이라는 게 무섭더라구요....
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입