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 | 
댓글