본문 바로가기
프로그래밍/DBMS

오라클 DECODE, GREATEST 로 음수값 처리하기

by zoo10 2013. 4. 10.

음수면 0으로 반환하고 싶을 때, 처리하는 방법을 궁리했다. 구글의 힘으로 조합하니 아래와 같이 2가지 정도가 좋을 듯. 


음수면 무조건 0을 반환하고 싶으면 GREATEST 함수를 사용하자.

GREATEST(변수, 0) 

하면 끝이다. 

이 함수는 인자 중에 가장 큰 값을 반환해 주는 함수인데, 음수 보다 0이 크니 변수가 음수일 경우 0이 반환된다.


두번째는 부호에 따라 처리해야 하면

DECODE(SIGN(변수), 1, 0, 변수)

SIGN함수는 부호를 반환해 주는데, 양수면 1, 음수면 -1, 0이면 0이 반환된다. 그에 따라 알아서 사용하면 될 듯.


끝~