숫자 함수
제곱
SELECT POWER(2,10) FROM DUAL;
제곱근(루트)
SELECT SQRT(25) FROM DUAL;
절대값
SELECT ABS(5), ABS(-5) FROM DUAL;
나머지
SELECT MOD(7, 2) FROM DUAL;
부호 판별
SIGN(A)
: A가 양수면 1, 음수면 -1, 0이면 0을 반환
SELECT SIGN(5), SIGN(-5), SIGN(0) FROM DUAL;
정수로 올림
SELECT CEIL(1.1), CEIL(-1.1) FROM DUAL;
정수로 내림
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;