[Oracle SQL 완벽 정리] 정수 반올림, 버림 처리 방법 – ROUND와 TRUNC 함수 완전 정복
데이터베이스를 다루는 실무자라면 반드시 알아야 할 숫자 처리 함수 ROUND와 TRUNC!
특히 Oracle SQL을 사용하는 경우 숫자의 반올림이나 버림 처리 방식은 단순한 숫자 계산 그 이상입니다. 정수 단위의 집계, 회계, 보고서 자동화, 매출 데이터 분석 등 수많은 업무에서 정확한 처리 기준을 필요로 하기 때문입니다.
이번 포스팅에서는 Oracle SQL에서 정수를 반올림하거나 버릴 수 있는 함수인 ROUND와 TRUNC의 개념부터 실전 예제까지 하나하나 자세히 파헤쳐보겠습니다.
목차
- ROUND 함수란?
- TRUNC 함수란?
- ROUND vs TRUNC – 개념 차이 정리
- 정수 반올림 실전 예제 (ROUND)
- 정수 버림 실전 예제 (TRUNC)
- 소수점을 포함한 정수 처리
- 실무 활용 팁 & 주의사항
- 결론 및 요약
1. ROUND 함수란?
Oracle SQL에서 ROUND 함수는 숫자를 특정 위치에서 반올림(Rounding) 처리할 수 있는 함수입니다.
기본 문법은 다음과 같습니다.
ROUND(숫자, 위치)
여기서 위치는 반올림할 자릿수를 의미하며, 양수일 경우 소수점 이하를, 음수일 경우 정수 부분을 기준으로 반올림합니다.
📌 주요 특징
- 반올림 기준은 해당 자리수의 바로 아래 수가 5 이상이면 올림, 미만이면 내림
- 자주 쓰이는 재무 계산, 통계, 수치 요약 등에 활용됨
2. TRUNC 함수란?
TRUNC 함수는 숫자를 특정 위치에서 버리는 함수(Truncation) 입니다. 말 그대로 해당 자릿수 이하의 숫자를 그냥 잘라냅니다.
TRUNC(숫자, 위치)
이 함수 역시 위치 인자를 통해 소수점 이하 또는 정수 자리까지 절단할 수 있습니다.
📌 주요 특징
- 단순히 잘라내기 때문에 반올림은 일절 없음
- 보고서 등에서 단순 절사 기준이 필요한 경우 유용함
- 정수 부분을 버리고 싶다면 위치를 음수로 설정
3. ROUND vs TRUNC – 개념 차이 정리
구분 ROUND TRUNC
기능 | 반올림(Rounding) | 버림(Truncation) |
처리 방식 | 기준 자릿수 숫자가 5 이상이면 올림 | 기준 자릿수 이하 숫자 모두 버림 |
위치값 양수 | 소수점 아래에서 반올림 | 소수점 아래에서 절사 |
위치값 음수 | 정수 부분에서 반올림 | 정수 부분에서 절사 |
4. 정수 반올림 실전 예제 (ROUND)
정수를 반올림하고 싶다면 ROUND 함수에 음수 값을 인자로 전달해야 합니다. 아래 예제를 살펴보겠습니다.
SELECT
ROUND(123456, -1), -- 10의 자리에서 반올림
ROUND(123456, -2), -- 100의 자리에서 반올림
ROUND(123456, -3) -- 1000의 자리에서 반올림
FROM dual;
💡 결과 예측
표현식 결과
ROUND(123456, -1) | 123460 |
ROUND(123456, -2) | 123500 |
ROUND(123456, -3) | 123000 |
🔍 ROUND(123456, -2)는 456 중 56이 50 이상이므로 100의 자리 반올림 → 123500
5. 정수 버림 실전 예제 (TRUNC)
이번엔 TRUNC 함수로 같은 숫자를 절사(버림)해보겠습니다.
SELECT
TRUNC(123456, -1), -- 10의 자리에서 절사
TRUNC(123456, -2), -- 100의 자리에서 절사
TRUNC(123456, -3) -- 1000의 자리에서 절사
FROM dual;
💡 결과 예측
표현식 결과
TRUNC(123456, -1) | 123450 |
TRUNC(123456, -2) | 123400 |
TRUNC(123456, -3) | 123000 |
🔍 TRUNC(123456, -2)는 456 중 56을 잘라버려서 123400으로 절사
6. 소수점을 포함한 정수 처리
Oracle SQL에서는 소수점이 포함된 수에 대해서도 동일한 방식으로 처리됩니다.
SELECT
ROUND(1234.67, -1),
ROUND(1234.67, -2)
FROM dual;
결과
표현식 결과
ROUND(1234.67, -1) | 1230 |
ROUND(1234.67, -2) | 1200 |
SELECT
TRUNC(1234.67, -1),
TRUNC(1234.67, -2)
FROM dual;
결과
표현식 결과
TRUNC(1234.67, -1) | 1230 |
TRUNC(1234.67, -2) | 1200 |
✅ 요약
소수점 이하가 있더라도, -1, -2 등 정수 기준으로 음수를 주면 정수 자릿수에서 반올림 또는 절사가 이루어집니다.
7. 실무 활용 팁 & 주의사항
1) 금액 단위 절사에 유용
세금, 할인율 계산, 총액 산출 시 원 단위 혹은 천 단위 절사가 필요할 때 TRUNC는 매우 유용합니다.
2) 반올림은 정확한 보고서에 사용
부서별 평균치 계산, 영업 목표율 달성률, KPI 보고 등에는 ROUND로 정확한 수치 정리가 필요합니다.
3) 자동화 프로세스에는 항상 단위 확인
프로시저나 트리거에서 숫자 처리 시 단위를 잘못 지정하면 데이터 왜곡 가능성이 있으므로 주의가 필요합니다.
8. 결론 및 요약
Oracle SQL을 사용하여 정수형 숫자를 처리할 때 ROUND와 TRUNC 함수는 실무에서 매우 자주 사용되는 핵심 함수입니다.
- ROUND: 기준 자릿수에서 반올림, -n이면 정수 자리에서 반올림
- TRUNC: 기준 자릿수 이하 숫자 절사, -n이면 정수 자리에서 절사
다음은 간단한 비교 요약입니다.
함수 기능 반올림/버림 기준
ROUND | 반올림 | 기준 자리 + 1이 5 이상이면 올림 |
TRUNC | 절사(버림) | 기준 자리 이하 모두 제거 |
정수 자리에서의 처리 방법을 잘 이해하고 있으면, 다양한 숫자 데이터를 보다 정확하고 유연하게 다룰 수 있습니다. 특히 재무, 회계, 보고서 분야에서는 이 두 함수의 차이를 정확히 구분하고 적용하는 것이 매우 중요합니다.