IT 개발 라이프/DB

🔢 ORACLE 숫자 함수 총정리

10Biliion 2024. 12. 16. 14:22

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;

🎯 활용 사례

  1. 데이터 정리: TRUNC와 ROUND를 사용하여 숫자를 특정 자리로 정리
  2. 조건 처리: SIGN과 MOD로 양수/음수/짝수/홀수 구분
  3. 비교 작업: GREATEST와 LEAST로 값 간의 최대/최소값 확인