Oracle 데이터베이스는 숫자 데이터를 다루는 데 유용한 다양한 함수들을 제공합니다. 숫자 함수는 수학 계산, 값 변환, 포맷 지정 등 여러 용도로 활용됩니다. 이번 글에서는 Oracle의 대표적인 숫자 함수들을 상세히 알아보겠습니다.
🧮 1. ABS (절대값 구하기)
ABS 함수는 주어진 숫자의 절대값을 반환합니다.
사용법:
SELECT ABS(-123) AS ABS_VALUE FROM DUAL;
결과:
123
💡 TIP: 절대값을 계산하여 부호를 제거하고 싶을 때 사용합니다.
🔢 2. CEIL (올림)
CEIL 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다.
사용법:
SELECT CEIL(5.3) AS CEIL_VALUE FROM DUAL;
결과:
6
📌 활용: 금액 계산에서 올림 처리가 필요한 경우 유용합니다.
🔻 3. FLOOR (내림)
FLOOR 함수는 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환합니다.
사용법:
SELECT FLOOR(5.7) AS FLOOR_VALUE FROM DUAL;
결과:
5
🛠️ 활용: 할인율 계산 등에서 내림 처리가 필요할 때 사용합니다.
✂️ 4. MOD (나머지 구하기)
MOD 함수는 첫 번째 숫자를 두 번째 숫자로 나눈 나머지를 반환합니다.
사용법:
SELECT MOD(10, 3) AS MOD_VALUE FROM DUAL;
결과:
1
🤔 활용: 주기적인 이벤트를 계산하거나, 홀수/짝수 구분 시 유용합니다.
🔄 5. ROUND (반올림)
ROUND 함수는 주어진 숫자를 지정된 소수점 자리까지 반올림합니다.
사용법:
SELECT ROUND(123.456, 2) AS ROUND_VALUE FROM DUAL;
결과:
123.46
📌 TIP: 두 번째 인자에 양수를 입력하면 소수점 자리, 음수를 입력하면 정수 자리에서 반올림됩니다.
🔢 6. TRUNC (버림)
TRUNC 함수는 주어진 숫자를 지정된 소수점 자리에서 자릅니다.
사용법:
SELECT TRUNC(123.456, 2) AS TRUNC_VALUE FROM DUAL;
결과:
123.45
🛠️ 활용: 반올림 없이 특정 자리까지만 표시하고 싶을 때 사용합니다.
📈 7. POWER (거듭제곱)
POWER 함수는 첫 번째 숫자의 두 번째 숫자 제곱 값을 반환합니다.
사용법:
SELECT POWER(2, 3) AS POWER_VALUE FROM DUAL;
결과:
8
🌟 활용: 지수 계산이나 배수 계산에서 유용합니다.
✔️ 8. SIGN (부호 확인)
SIGN 함수는 주어진 숫자의 부호를 반환합니다.
- 양수: 1
- 음수: -1
- 0: 0
사용법:
SELECT SIGN(-25) AS SIGN_VALUE FROM DUAL;
결과:
-1
🔍 활용: 숫자가 양수, 음수인지 확인해야 하는 조건 처리에 적합합니다.
📊 9. EXP (지수 계산)
EXP 함수는 e (자연 로그의 밑, 약 2.718)의 거듭제곱 값을 반환합니다.
사용법:
SELECT EXP(1) AS EXP_VALUE FROM DUAL;
결과:
2.718281828459045
💡 활용: 로그 계산 및 지수 함수 관련 수식에 사용됩니다.
🔍 10. LN & LOG (로그 계산)
- LN: 자연 로그 (밑이 e) 계산
- LOG: 지정된 밑을 사용한 로그 계산
사용법:
SELECT LN(2.718) AS LN_VALUE, LOG(10, 1000) AS LOG_VALUE FROM DUAL;
결과:
LN_VALUE LOG_VALUE
1 3
📊 활용: 데이터 분석 및 통계 작업에서 로그 값을 구할 때 사용됩니다.
🛠️ 기타 유용한 숫자 함수
함수 | 설명 | 예제 |
GREATEST | 여러 값 중 가장 큰 값을 반환합니다. | SELECT GREATEST(10, 20, 30) FROM DUAL; |
LEAST | 여러 값 중 가장 작은 값을 반환합니다. | SELECT LEAST(10, 20, 30) FROM DUAL; |
COSH / SINH | 쌍곡선 코사인/사인 값을 반환합니다. | SELECT COSH(0) AS COSH_VALUE, SINH(0) AS SINH_VALUE FROM DUAL; |
WIDTH_BUCKET | 값을 지정된 범위로 나누고, 그 범위의 위치를 반환합니다. | SELECT WIDTH_BUCKET(15, 0, 100, 10) AS BUCKET FROM DUAL; |
🎯 활용 사례
- 데이터 정리: TRUNC와 ROUND를 사용하여 숫자를 특정 자리로 정리
- 조건 처리: SIGN과 MOD로 양수/음수/짝수/홀수 구분
- 비교 작업: GREATEST와 LEAST로 값 간의 최대/최소값 확인
'IT 개발 라이프 > DB' 카테고리의 다른 글
오라클 계층형 쿼리 (Hierarchical Query) (0) | 2024.12.17 |
---|---|
오라클 COALESCE 함수란? 💡 (0) | 2024.12.17 |
📅 ORACLE 날짜 함수 총정리 (0) | 2024.12.16 |
데이터베이스 옵티마이저 이해하기 ✨ (0) | 2024.12.04 |
데이터베이스 DDL, DML, DCL 정리 🗂️ (0) | 2024.12.04 |