[Oracle] 몫, 나머지 구하는 방법 (MOD, TRUNC)
- 데이터베이스/오라클
- 2023. 1. 7.
오라클에서 나눈 값의 몫과 나머지를 구하기 위해서는 TRUNC 함수와 MOD 함수를 사용하면 된다. TRUNC 함수를 사용하여 나눈 값의 소수점 이하의 값을 절사하고 몫을 구할 수 있으며, MOD 함수를 사용하여 나머지 값을 구할 수 있다. FLOOR 함수를 사용하여 몫을 구할 수 있지만 나눈 값이 음수인 경우 의도하지 값이 반환될 수 있으니 주의해야 한다.
목차 |
몫, 나머지 구하는 방법 (MOD, TRUNC)
SELECT 10 / 3
, TRUNC(10 / 3)
, MOD(10, 3)
FROM dual
몫 : TRUNC("나눈 값")
나머지: MOD("피제수", "제수")
나눈 값에서 TRUNC 함수를 사용하여 소수점 이하의 값을 버리고 몫만 구할 수 있으며, MOD 함수를 사용하여 나머지 값만 구할 수 있다. TRUNC 함수 대신 FLOOR 함수를 사용하여 몫을 구할 수 있다.
몫 구할 때 주의할 점 (TRUNC, FLOOR)
나눈 값이 양수(+)인 경우
SELECT 10 / 3
, TRUNC(10 / 3)
, FLOOR(10 / 3)
FROM dual
나눈 값이 양수 인경우 TRUNC, FLOOR 함수를 사용하여 몫을 구할 수 있다. TRUNC 함수는 오라클 전용 함수이며, FLOOR 함수는 다른 DB의 SQL에서도 사용할 수 있기 때문에 장점이 있다.
나눈 값이 음수(-)인 경우 (FLOOR 함수 사용 시 주의)
SELECT -10 / 3
, TRUNC(-10 / 3)
, FLOOR(-10 / 3)
FROM dual
나눈 값이 음수인 경우 FLOOR 함수를 사용하여 몫을 구할 때 주의해야 한다. FLOOR 함수는 현재 값에서 최소 정수를 반환하는 기능이기 때문에 -3.3에 가깝고 가장 작은 정수인 -4를 반환한다.