Oracle DB_숫자 함수

JW__1.7·2022년 8월 30일
0

DB 공부일지

목록 보기
15/27

숫자 함수

제곱

  • POWER(A, B) : A의 B제곱
SELECT POWER(2,10) FROM DUAL;

제곱근(루트)

  • SQRT(A) : 루트 A
SELECT SQRT(25) FROM DUAL;

절대값

  • ABS(A) : A의 절대값
SELECT ABS(5), ABS(-5) FROM DUAL;

나머지

  • MOD(A, B) : A를 B로 나눈 나머지
SELECT MOD(7, 2) FROM DUAL;

부호 판별

  • SIGN(A) : A가 양수면 1, 음수면 -1, 0이면 0을 반환
SELECT SIGN(5), SIGN(-5), SIGN(0) FROM DUAL;

정수로 올림

  • CEIL(A) : 실수 A를 정수로 올림
SELECT CEIL(1.1), CEIL(-1.1) FROM DUAL;

정수로 내림

  • FLOOR(A) : 실수 A를 정수로 내림
SELECT FLOOR(1.1), FLOOR(-1.1) FROM DUAL;

원하는 자릿수로 절사

  • TRUNC(A, [DIGIT]) : 실수 A를 DIGIT 자릿수로 절사, DIGIT 생략하면 정수로 절사
SELECT
       TRUNC(1.9999)    -- 1
     , TRUNC(1.9999, 1) -- 1.9
     , TRUNC(1.9999, 2) -- 1.99
  FROM 
       DUAL;
SELECT
       TRUNC(9999, -1)    -- 9990 (원 단위 절사)
     , TRUNC(9999, -2)    -- 9900
  FROM 
       DUAL;

원하는 자릿수로 반올림

  • ROUND(A, [DIGIT]) : 실수 A를 DIGIT 자릿수로 반올림, DIGIT 생략하면 정수로 반올림
SELECT
       ROUND(145.45)    -- 145
     , ROUND(145.45, 1) -- 145.4
     , ROUND(145.45, 2) -- 145.45
     , ROUND(145.45, -1)    -- 150
     , ROUND(145.45, -2)    -- 100
  FROM 
       DUAL;

원하는 자릿수로 올림

자릿수DIGIT
소수1자리CEIL(값 * 10) / 10 1
소수2자리CEIL(값 * 100) / 100 2
소수3자리CEIL(값 * 1000) / 1000 3
정수CEIL(값 * 1) / 1 0
일의 자리CEIL(값 * 0.1) / 0.1 -1
십의 자리CEIL(값 * 0.01) / 0.01 -2
백의 자리CEIL(값 * 0.001) / 0.001 -3
일반화CEIL(값 * POWER(10, DIGIT)) / POWER(10, DIGIT)
SELECT
       CEIL(1.111 * POWER(10, 1)) / POWER(10, 1)    -- 1.2
     , CEIL(1.111 * POWER(10, 2)) / POWER(10, 2)    -- 1.12
     , CEIL(11111 * POWER(10, -1)) / POWER(10, -1)  -- 11120
     , CEIL(11111 * POWER(10, -2)) / POWER(10, -2)  -- 11200
  FROM 
       DUAL;

원하는 자릿수로 내림

자릿수DIGIT
소수1자리FLOOR(값 * 10) / 10 1
소수2자리FLOOR(값 * 100) / 100 2
소수3자리FLOOR(값 * 1000) / 1000 3
정수FLOOR(값 * 1) / 1 0
일의 자리FLOOR(값 * 0.1) / 0.1 -1
십의 자리FLOOR(값 * 0.01) / 0.01 -2
백의 자리FLOOR(값 * 0.001) / 0.001 -3
일반화FLOOR(값 * POWER(10, DIGIT)) / POWER(10, DIGIT)
SELECT
       FLOOR(1.111 * POWER(10, 1)) / POWER(10, 1)    -- 1.1
     , FLOOR(1.111 * POWER(10, 2)) / POWER(10, 2)    -- 1.11
     , FLOOR(11111 * POWER(10, -1)) / POWER(10, -1)  -- 11110
     , FLOOR(11111 * POWER(10, -2)) / POWER(10, -2)  -- 11100
  FROM
       DUAL;

0개의 댓글