본문 바로가기
Database

[Oracle] Round 함수 사용 방법 (올림, 반올림, 버림)

by jaee_ 2020. 11. 23.

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

댓글