데이터베이스(DB: Database)/SQL

[SQL] 오라클(Oracle) 숫자 함수 정리

잇트루 2023. 4. 26. 00:24
반응형

ABS(N)

N의 절댓값을 반환

SELECT ABS(-5) AS RESULT FROM dual;

 

RESULT
5

 

 

MOD(A, B)

A를 B로 나눈 나머지를 반환

SELECT MOD(10, 3) AS RESULT FROM dual;
RESULT
1

 

 

ROUND(A, B)

입력값 A의 (소수점) B번째 자릿수까지 반올림(B 생략 가능)

  • B = 0 : 소수점 첫 번째 자릿수
  • B > 0 : 소수점 B 번째 자릿수
  • B < 0 : 정수 B 번째 자릿수
    • EX) B = -2이면, 10의 자릿수까지 반올림

 

소수점 첫 번째 자릿수 (B = 0)

SELECT ROUND(99.5) AS CASE1,
    ROUND(99.4) AS CASE2,
    ROUND(99.5, 0) AS CASE3,
    ROUND(99.4, 0) AS CASE4
FROM dual;
CASE1 CASE2 CASE3 CASE4
100 99 100 99

 

소수점 B 번째 자릿수 (B > 0)

SELECT ROUND(0.5, 1) AS CASE1,
    ROUND(0.345, 2) AS CASE2,
    ROUND(0.567, 1) AS CASE3,
    ROUND(0.567, 2) AS CASE4
FROM dual;
CASE1 CASE2 CASE3 CASE4
0.5 0.35 0.6 0.57

 

정수 B 번째 자릿수 (B < 0)

SELECT ROUND(123.12, -1) AS CASE1,
    ROUND(125.12, -1) AS CASE2,
    ROUND(899, -2) AS CASE3
FROM dual;
CASE1 CASE2 CASE3
120 130 900

 

 

TRUNC(A, B)

A의 (소수점) B 번째 자리에서 버림(B 생략 가능)

SELECT TRUNC(123.456) AS CASE1,
    TRUNC(123.456, 1) AS CASE2,
    TRUNC(123.456, -1) AS CASE3
FROM dual;
CASE1 CASE2 CASE3
123 123.4 120

 

 

CEIL(N) / FLOOR(N)

  • CEIL(N) : 소수 점 올림, N보다 크거나 같은 정수중 제일 작은 수
  • FLOOR(N) : 소수 점 버림, N보다 작거나 같은 수 중 제일 큰 수
SELECT CEIL(5.2) AS CEIL1,
    CEIL(4.123) AS CEIL2,
    FLOOR(5.567) AS FLOOR1,
    FLOOR(4.123) AS FLOOR2
FROM dual;
CEIL1 CEIL2 FLOOR1 FLOOR2
6 5 5 4

 

 

POWER(A, B)

A의 B제곱한 결과를 반환

SELECT POWER(2, 2) AS CASE1,
    POWER(2, 3) AS CASE2,
    POWER(2, 4) AS CASE3,
    POWER(2, 5) AS cASE4
FROM dual;
CASE1 CASE2 CASE3 CASE4
4 8 16 32

 

 

SQRT(N)

N의 제곱근 구하기

SELECT SQRT(4) AS CASE1,
    SQRT(9) AS CASE2,
    SQRT(16) AS CASE3,
    SQRT(25) AS CASE4
FROM dual;
CASE1 CASE2 CASE3 CASE4
2 3 4 5

 

 

LOG(A, B)

밑을 A로 하여 B의 로그 값을 반환한다.

  • A : 0 또는 1 이외의 정수
  • B : 양수
SELECT LOG(2, 8) AS CASE1,
    LOG(10, 100) AS CASE2,
    LOG(4, 32) AS CASE3
FROM dual;
CASE1 CASE2 CASE3
3 2 2.5

 

 

SIGN(N)

N이 양수면 1, 음수면 -1, 0이면 0을 반환한다.

SELECT SIGN(-100) AS CASE1,
    SIGN(100) AS CASE2,
    SIGN(0) AS CASE3
FROM dual;
CASE1 CASE2 CASE3
-1 1 0

 

 

GREATEST(A, B, …) / LEAST(A, B, …)

  • GREATEST : 입력 값 중에서 가장 큰 값을 반환한다.
  • LEAST : 입력 값 중에서 가장 작은 값을 반환한다.
SELECT GREATEST(10, 20, 30, 40, 50) AS GREATEST,
    LEAST(10, 20, 30, 40, 50) AS LEAST
FROM dual;
GREATEST LEAST
50 10

 

반응형