SQL
(SQL) 반올림, 올림, 내림, 버림(round, ceil, floor, trunc) Oracle
5사
2021. 12. 10. 23:42
ROUND 반올림
select round(34.567),
round(34.567, 2),
round(34.567, 1),
round(34.567, 0),
round(34.567, -1),
round(34.567, -2)
from dual;
-- round(숫자, 위치)
위치가 없을 경우는 위치가 0일 경우와 같다.
숫자 | 3 | 4 | . | 5 | 6 | 7 |
위치 | -2 | -1 | 0 | 1 | 2 | 3 |
위치가 0이거나 양수일 때 - 해당 위치에서 반올림을 받는 것(뒤에 자리에서 반올림되어 해당 위치까지 표시)
위치가 음수일 때 - 해당 위치에서 반올림이 되는 것
round(34.567, 2)는 6에서 반올림을 받는다. 그러므로 뒤 숫자인 7에서 반올림되어 결과 값이 34.57이 된다.
round(34.567, -2)는 3에서 반올림이 된다. 그러므로 3은 반올림이 불가능하여 결과 값이 0이 된다.
CEIL 올림
select ceil(34.567), ceil(99), ceil(-101.1), ceil(101.01)
from dual;
-- ceil(숫자)
숫자가 99 혹은 99.0처럼 소수 자리가 0이 아니라면 가장 가까운 정수로 올림된다.
FLOOR 내림
select floor(34.567), floor(99), floor(-101.1), floor(101.1)
from dual;
-- floor(숫자)
ceil의 반대, 99 혹은 99.0처럼 소수 자리가 0이 아니면 가장 가까운 정수로 내림된다.
TRUNC 버림
select trunc(34.567), trunc(34.567, 0), trunc(-34.567, 1), trunc(-34.567, -1)
from dual;
-- trunc(숫자, 위치)
trunc(34.567)은 trunc(34.567, 0)과 같은 결과를 출력하는데 소수점 자릿수를 버린 결과값을 출력한다.
trunc(-34.567, 1)은 소수점 첫 번째 자리까지 남기고 나머지는 버린다는 의미이다.
trunc(-34.567, -1)은 일의 자릿수부터 버림 하여 -30이 출력된다