쌓고 쌓다

[Oracle] ROUND, TRUNC, MOD, CEIL, FLOOR 함수 본문

프로그래밍/SQL

[Oracle] ROUND, TRUNC, MOD, CEIL, FLOOR 함수

승민아 2022. 10. 8. 18:15

숫자 함수

종류 의미
ROUND 지정한 자리까지 표현하여 반올림 ROUND(123.17, 1) -> 123.2
TRUNC 지정한 자리까지 표현하여 절삭 TRUNC(123.17, 1) -> 123.1
MOD m을 n으로 나눈 나머지 MOD(12, 10) -> 2
CEIL 입력값보다 큰 수중에서 가장 작은 정수 CEIL(123.17) -> 124
FLOOR 입력값보다 작은 수중에서 가장 큰 정수 FLOOR(123.17) -> 123

 

ROUND 함수

ROUND( expr | column, n )

expr 또는 column 값을 n+1자리에서 반올림하여 n자리까지 표현

n 값이 없으면 소수 자리에서 반올림하여 정수로 나타냄

n값이 음수이면 소수점 왼쪽 n+1자리에서 반올림하여 n자리까지 표현

 

- 101번 학과 교수의 일급을 계산(월 근무일은 22일)하여 소수점 첫째 자리, 셋째 자리에서 반올림한 값과

 소수점 왼쪽 첫째 자리에서 반올림한 값을 출력

SELECT ROUND(sal/22), ROUND(sal/22, 2), ROUND(sal/22, -1)
    FROM professor
    WHERE deptno=101;

 

TRUNC 함수

지정한 자리까지 표현하여 나머지는 절삭

TRUNC( expr | column, n )

n이 없으면 소수점 이하 표현하지 않게 함 ( TRUNC(number, 0)과 동일 )

n이 음수이면 소수점 왼쪽 자리로 n번째 자리까지 표현

 

- 101번 학과 교수의 일급을 계산(월 근무일 22일)하여 소수점 첫째 자리, 셋째 자리에서 절삭한 값과

  소수점 왼쪽 첫재 짜리에서 절삭한 값을 출력

SELECT TRUNC(sal/22), TRUNC(sal/22, 2), TRUNC(sal/22, -1)
    FROM professor
    WHERE deptno=101;

 

MOD 함수

나머지를 출력 - m을 n으로 나눈 나머지

MOD(m, n)

 

- 101번 학과 교수의 급여를 보직수당으로 나눈 나머지를 출력

SELECT MOD(sal, comm)
    FROM professor
    WHERE deptno=101;

 

CEIL, FLOOR 함수

CEIL : 지정한 숫자보다 크거나 같은 수 중 가장 작은 정수

FLOOR : 지정한 숫자보다 작거나 같은 수 중 가장 큰 정수

CEIL( expr | column )
FLOOR( expr | column )

 

- 19.7보다 큰 정수중에서 작은 정수와 12.345보다 작은 정수 중에서 가장 큰 정수를 출력

SELECT CEIL(19.7), FLOOR(12.345)
    FROM dual;

 

Comments