Oracle에서 사용할 수 있는 숫자, 수학 함수들은 다음과 같습니다.
1. 숫자 함수, 수학 함수
함수명 | 양식 | 기능 설명 |
ABC | ABS(n) | 절대값 반환 |
SIN, COS, TAN ASIN, ACOS, ATAN ATAN2 |
SIN(n), COS(n), TAN(n) ASIN(n), ATAN(n), ATAN(n) ATAN2(n1, n2) |
삼각함수 관련함수 n은 라디안값으로 입력 라디안 : 각도 * 2 * PI / 360 |
CEIL FlOOR ROUND |
CEIL(n) FlOOR(n) ROUND(n, i) |
올림 버림 반올림, i+1 자리에서 반올림, i기본값은 1 |
EXP LN LOG |
EXP(n) LN(n) LOG(base, n) |
e의 n제곱 값을 반환 자연 로그 함수로 밑수가 e인 로그함수 base를 밑수로 하는 n의 로그값을 반환 |
MOD | MOD(n1, n2) | n1을 n2로 나눈 나머지 값을 반환 |
POWER SQRT |
POWER(n1, n2) SQRT(n) |
n1를 n2 제곱한 결과를 반환, n2는 양수만 n의 제곱근을 반환 |
SIGN | SIGN(n) | 양수면 1, 0이면 0, 음수이면 -1을 반환 |
TRUNC | TRUNC(n, i) | 숫자(n)를 소수점을 기준으로 정수(i) 위치까지 구하고 나머지는 버림, i의 기본값은 0, i가 음수일 경우 소수점 기준 왼쪽 i번째에서 버림 |
1.1 ABS(n)
숫자의 절댓값을 계산
SELECT ABS(10), ABS(-10), ABS(-10.123) FROM DUAL;
------- -------- ------------
10 10 10.123
1.2 SIN(n), COS(n), TAN(n), ACOS(n), ASIN(n), ATAN(n) ATAN2(n1, n2)
삼각 함수와 관련 함수
-- SIN(30도) = 1/2
-- RADIAN = 각도 * 2 * PI / 360
-- PI = ACOS(-1) = 3.14159265359...
SELECT SIN(30*2*3.1416/360), SIN(30*2*ACOS(-1)/360) FROM DUAL;
-------------------- ----------------------
0.5000010603626028226505930991964310868557
0.5000000000000000000000000000000000000005
-- COS(30도) = 1/2
SELECT COS(60*2*3.1416/360), COS(60*2*ACOS(-1)/360) FROM DUAL;
-------------------- ----------------------
0.4999978792725456169998841491040422896193
0.4999999999999999999999999999999999999946
-- TAN(45도) = 1
SELECT TAN(45*2*3.1416/360), TAN(45*2*ACOS(-1)/360) FROM DUAL;
-------------------- ----------------------
1.00000367321184961515462875841648317896
1
1.3 CEIL(n), FlOOR(n), ROUND(n, i)
올림, 내림, 반올림을 계산
CEIL(n) : n의 올림값을 반환
SELECT CEIL(10.123), CEIL(10.541), CEIL(11.001) FROM DUAL;
------------ ------------ ------------
11 11 12
FLOOR(num) : n의 버림 값을 반환
SELECT FLOOR(10.123), FLOOR(10.541), FLOOR(11.001) FROM DUAL;
------------- ------------- -------------
10 10 11
ROUND(num, i) : n을 소수 i+1번째 자리에서 반올림한 값을 반환, 기본값은 소수 첫 번째 자리에서 반올림, i가 음수이면 소수점을 기준으로 왼쪽 i번째에서 반올림
-- i를 생략한 경우
SELECT ROUND(10.154), ROUND(10.541), ROUND(11.001) FROM DUAL;
------------- ------------- -------------
10 11 11
-- i를 입력한 경우
SELECT ROUND(10.154,1), ROUND(10.154, 2), ROUND(10.154, 3) FROM DUAL;
--------------- ---------------- ----------------
10.2 10.15 10.154
-- i가 음수인 경우
SELECT ROUND(0,3), ROUND(115.155,-1), ROUND(115.155,-2) FROM DUAL;
---------- ----------------- -----------------
0 120 100
1.4 EXP(n), LN(n), LOG(base, n)
지수, 로그 관련 함수
EXP : e의 n제곱 값을 반환
LN : 자연 로그 함수로 밑수가 e인 로그함수
LOG : base를 밑수로 하는 n의 로그 값을 반환
SELECT EXP(2), LN(2.713), LOG(10, 100) FROM DUAL;
--------- ----------- ------------
7.3890561 0.998055034 2
1.5 MOD(n1, n2)
n1을 n2로 나눈 나머지 값을 반환
SELECT MOD(19, 4), MOD(19.123, 4.2) FROM DUAL;
---------- ----------------
3 2.323
1.6 POWER(n1, n2), SQRT(n)
거듭제곱 값 및 제곱근 함수
POWER(n1, n2) : n1를 n2 제곱한 결과를 반환, n2는 음수를 허용하지 않음.
SELECT POWER(3,2), POWER(3,3), POWER(3, 3.001) FROM DUAL;
---------- ---------- ---------------
9 27 27.0296788
SQRT(n) : n의 제곱근을 반환
SELECT SORT(2), SQRT(5) FROM DUAL;
---------- ----------
1.41421356 2.23606798
1.7 SIGN(n)
SIGN(n) : 숫자(n)의 양수, 0, 음수를 판별,
양수면 1, 0이면 0, 음수이면 -1을 반환
SELECT SIGN(1.1), SIGN(0), SIGN(-10) FROM DUAL;
--------- ------- ---------
1 0 -1
1.8 TRUNC(n, i)
TRUNC(n, i) : 숫자(n)를 소수점을 기준으로 정수(i) 위치까지 구하고 나머지는 버림,
i의 기본값은 0,
i가 음수일 경우 소수점 기준 왼쪽 i번째에서 버림
-- i 기본값은 0
SELECT TRUNC(115.155), TRUNC(115.155, 1) FROM DUAL;
-------------- -----------------
115 115.1
-- i가 양수인 경우, 음수인 경우
SELECT TRUNC(115.155, 2), TRUNC(115.155, -2) FROM DUAL;
----------------- ------------------
115.15 100
참고
https://docs.oracle.com/database/121/SQLRF/functions002.htm#SQLRF51178
'Dev. Handbook > SQL, Oracle, MariaDB' 카테고리의 다른 글
[Oracle] 내장함수 : 비교함수, 디코딩 함수 (0) | 2022.05.22 |
---|---|
[Oracle] 내장 함수 : NULL 관련 함수 (1) | 2022.05.14 |
[Oracle] 내장 함수 : 형 변환 함수 (0) | 2022.05.13 |
[Oracle] 내장 함수 : 날짜 함수, 시간 함수 (0) | 2022.05.10 |
[Oracle] 내장 함수 : 문자열 함수 일람 (0) | 2022.04.28 |
댓글