DB|SQL
[오라클 SQL] 숫자 함수
soyeonisgood
2022. 8. 10. 20:46
단일 행 함수 (Single-Row Funtions)
- 선택 목록, WHERE절, START WITH 및 CONNECT BY절, HAVING절에서 사용 가능
숫자 함수 (Nemeric Functions)
숫자 함수 | 설명 |
ABS(n) | 절대값 반환 |
SIGN(n) | 부호 반환 (양수:1, 0:0, 음수:-1) |
MOD(n2, n1) | n2를 n1로 나눈 나머지 반환. n1=0, n2반환. 내부 연산 방식: n2 - n1 * FLOOR(n2/n1) |
REMAINDER(n2, n1) | n2를 n1로 나눈 나머지 반환. n1=0, n2반환. MOD()와 유사하나 수식에 ROUND 사용. 주로 MOD() 사용. 내부 연산 방식: n2 - n1 * ROUND(n2/n1) |
CEIL(n) | n보다 크거나 같은 가장 작은 정수 반환 |
FLOOR(n) | n이하의 가장 큰 정수 반환 |
TRUNC(n1, [n2]) | n2소수점 이하 자릿수로 자른 n1 반환. n2 생략 시 n1은 소숫점 전부 잘림. n2는 소수점 왼쪽에서 n2자리만큼 자르므로 음수일 수 있음 |
SIN(n), COS(n), TAN(n) ... | 삼각함수 등 |
EXP(n), POWER(n2,n1), SQRT(n), LOG(n2,n1), LN(n) | 지수, 거듭제곱, 제곱근, 로그, 자연로그 등 |
- ABS(n): 절대값
- SELECT ABS(20), ABS(-20) FROM dual; -- 20 -20
- SIGN(n): 부호
- SELECT SIGN(20), SIGN(-20), SIGN(0) FROM dual; -- 1 -1 0
- MOD(n2, n1): 나머지.
- n2-n1*FLOOR(n2/n1) -- 대부분 MOD 사용.
- REMAINDER(n2, n1): 나머지.
- n2-n1*ROUND(n2/n1)
- SELECT MOD(11, 4) FROM dual; -- 3
SELECT 13 - 5 * FLOOR(13/5) FROM dual; -- 소수점 절삭
SELECT MOD(13, 5) FROM dual; -- 3
SELECT 13/5 FROM dual; -- 2.6
SELECT ROUND(13/5) FROM dual; -- 3
SELECT 13 - 5 * ROUND(13/5) FROM dual; -- -2
SELECT REMAINDER(13, 5) FROM dual; -- -2
SELECT REMAINDER(13, 6) FROM dual; -- -1
- CEIL(n): n보다 크거나 같은 가장 작은 정수
- SELECT CEIL(20.5), CEIL(-20.5), CEIL(20) FROM dual; -- 21 -20 20
- FLOOR(n): n 이하의 가장 큰 정수 (가장 가까운 큰 정수)
- SELECT FLOOR(20.5), FLOOR(-20.5), FLOOR(20) FROM dual; -- 20 -21 20
- ROUND(n [, integer ]): 반올림
- SELECT ROUND(15.683) FROM dual; -- 16:소수점 첫째자리 반올림 ROUND(15.683,0) 동일.
- SELECT ROUND(15.683, 1) FROM dual; -- 15.7:소수점 둘째자리에서 반올림
- SELECT ROUND(15.683, 2) FROM dual; -- 15.68
- SELECT ROUND(15.683, -1) FROM dual; -- 20. 음수이면 소수점 왼쪽에서 반올림
- TRUNC(n1 [, n2 ]): 절삭
- SELECT TRUNC(15.683) FROM dual; -- 15
- SELECT TRUNC(15.683, 1) FROM dual; -- 15.6
- SELECT TRUNC(15.683, 2) FROM dual; -- 15.68
- SELECT TRUNC(15.683, -1) FROM dual; -- 10