SQLD문제를 풀던 중 ROUND함수가 나왔다
ORACLE 함수 중에도 반올림 올림 버림 함수가 있다. 오늘은 이를 정리해보자
ROUND 함수 (반올림) -- ROUND(N, 반올림할 위치)
반올림하고자 하는 숫자를 앞에, 반올림할 위치를 뒤에 적어준다 round(n,반올림할 위치)
반올림할 위치에 아무것도 적지 않으면 첫째자리에서 반올림을 하며, 1을 적을경우부터 둘째자리에서 반올림을 한다.
정수를 반올림하고자 하는 경우엔 -1,-2..이렇게 마이너스를 붙여주면 된다.
--반올림함수
-- 아무것도 적지 않으면 소수점 첫째 자리에서 반올림
SELECT round(5.1830) FROM dual; -- 5
SELECT round(5.6830) FROM dual; -- 6
-- 0을 적으면 소수점 첫째 자리에서 반올림
SELECT round(5.1830,0) FROM dual; -- 5
-- 1을 적으면 소수점 둘째 자리에서 반올림
SELECT round(5.1830,1) FROM dual; -- 5.2
-- 2을 적으면 소수점 셋째 자리에서 반올림
SELECT round(5.1830,2) FROM dual; -- 5.18
SELECT round(5.1880,2) FROM dual; -- 5.19
-- 3을 적으면 소수점 넷째 자리에서 반올림
SELECT round(5.1830,3) FROM dual; -- 5.183
-- 정수를 반올림 하려면?
SELECT round(57.1830,-1) FROM dual; -- 60
SELECT round(54.1830,-1) FROM dual; -- 50
SELECT round(52154.1830,-3) FROM dual; -- 52,000
round 함수는 날짜의 반올림도 가능하다.
-- 날짜 반올림
SELECT
ROUND( to_date( '2016-03-28 11:50:00', 'YYYY-MM-DD HH24:MI:SS' ) ) col1,
ROUND( to_date( '2016-03-28 12:00:01', 'YYYY-MM-DD HH:MI:SS' ) ) col2 FROM dual;
결과값은 왼쪽에 보이는 것 처럼 11:50분일경우 3월 28일로,
12시가 넘었을 경우 29일로 표시가 되었다
CEIL 함수 (올림) -- CEIL(N)
올리고자 하는 숫자를 ceil(n) n안에 넣으면 어떠한 소수든 다 올림이 되어서 정수로 표현된다.
-- 올림함수
SELECT CEIL (1247.7) FROM dual; -- 1.248
SELECT CEIL(1.2) FROM dual; -- 2
FLOOR 함수 (내림) -- FLOOR(N)
내리고자 하는 숫자를 floor(n) n안에 넣으면 어떠한 소수든 다 버림되어 정수로 표현된다.
--내림함수
SELECT floor(2.7) FROM dual; --2
SELECT floor(12356.8) FROM dual; -- 12,356
TRUNC 함수 (버림) -- TRUNC(N,버릴 위치)
-- 버림함수
--아무것도 적지 않으면 TRUNC(N,0)과 같은 의미이다.
SELECT TRUNC(1.12345) FROM dual; --1
SELECT TRUNC(1.12345,1) FROM dual; --1.1
SELECT TRUNC(1.12345,2) FROM dual; --1.12
SELECT TRUNC(1.12345,3) FROM dual; -- 1.123
SELECT TRUNC(1.12345,5) FROM dual; -- 1.12345
댓글