반응형

오라클 나머지 함수 2

[오라클/함수] 나머지 함수 MOD 와 REMAINDER 차이점

Syntax Purpose 오라클에서 MOD함수와 REMAINDER 함수는 나머지를 구하는 함수로 알려져 있습니다. 그런데 둘다 똑같은 나머지를 반환한다면 함수가 두개일 필요가 없겠지요. 두 함수가 동일하게 나머지를 리턴하는 것은 맞지만, 내부적으로 돌아가는 로직이 약간 차이가 있습니다. 식을 살펴보면, MOD(n2, n1) = SIGN(n2) * (ABS(n2) - (ABS(n1) * FLOOR(ABS(n2)/ABS(n1))) REMAINDER(n2, n1) = n2 - n1 * ROUND(n2,n1) 이렇게 계산되어 집니다. 계산식이 복잡해 보이기는 하는데, 별건 없습니다. MOD함수의 인자에 절댓값을 넣어준다는거와 MOD함수에는 FLOOR함수가 사용되고, REMAINDER함수에는 ROUND함수가 사..

IT 2016.11.23

[오라클/함수] 나머지 값 계산 함수 MOD

Syntax MOD()함수는 인자로 들어오는 두값을 나눈 후 나머지 값을 리턴하는 함수입니다. MOD(11,4)면 11 나누기 4를 하면 나머지가 3이 나오는데, 이 3을 리턴합니다. 예제를 보시죠. Example 실행을 시켜보면 이렇게 결과값이 나옵니다. 오라클 문서를 보니 인자값이 마이너스 값일 경우 현버전과 classical module에서 리턴값이 다르게 나타난다고 합니다. classical module에서는 아래의 수식으로 계산되어져서 그렇다고 하네요 n2 - n1 * FLOOR(n2/n1) 어떻게 값이 다르게 나오는지 실행해 봤습니다. 참고하시기 바랍니다.

IT 2016.11.15
반응형