Skip to content

SQL함수 숫자함수 #

Find similar titles

5회 업데이트 됨.

Edit
  • 최초 작성자
    이크스
  • 최근 업데이트
    green

숫자함수 #

숫자 함수란 수식 연산을 하는 함수로 연산 대상 즉, 매개변수나 반환 값이 대부분 숫자 형태다.

  1. ABS(n) ABS함수는 매개변수로 숫자를 받아 그 절대값을 반환하는 함수다.

    -입력
        SELECT ABS(10), ABS(-10), ABS(-10.123) FROM DUAL;
    -결과 
        10, 10, 10.123
    
  2. CEIL(n)과 FLOOR(n) CEIL함수는 매개변수 n과 같거나 가장 큰 정수를 반환한다.

    -입력
        SELECT CEIL(10.123) CEIL(10.541), CEIL(11.001) FROM DUAL;
    -결과
        11, 11, 12
    

    FLOOR함수는 CEIL함수와 반대로 매개변수 n보다 작거나 가장 큰 정수를 반환한다.

    -입력
        SELECT FLOOR(10.123), FLOOR(10.541), FLOOR(11.001) FROM DUAL;
    -출력
        10,10,11
    
  3. ROUND(n,i)와 TRUNC(n1, n2) ROUND 함수는 매개변수 n을 소수점 기준(i+1)번째에서 반올림한 결과를 반환한다. i는 생략할 수 있고 디폴트 값은 0, 즉 소수점 첫 번째 자리에서 반올림이 일어나 정수 부분의 일의 자리에 결과가 반영된다.

    -입력
        SELECT ROUND(10.154), ROUND(10.541), ROUND(11.001) FROM DUAL;
    -출력
        10, 11, 11
    
    -입력
        SELECT ROUND(10.154, 1) ROUND(10.154, 2), ROUND(10.154, 3)
    -결과
        10.2, 10.15, 10.154
    
    -입력
        SELECT ROUND(0, 3), ROUND(115.155, -1), ROUND(115.155, -2) FROM DUAL;
    -출력
        0, 120, 100
    

    TRUNC함수는 반올림을 하지 않고, n1을 소수점 기준 n2자리에서 무조건 잘라낸 결과를 반환한다. n2역시 생략할 수 있으며 디폴트 값은 0 이고, 양수일때는 소수점 기준으로 오른쪽, 음수일 때는 소수점 기준 왼쪽 자리에서 잘라낸다.

    -입력
        SELECT TRUNC(155.155), TRUNC(155.155, 1), TRUNC(155.155, 2), TRUNC(155.155, -2) FROM DUAL;
    -출력
        155, 155.1, 155.15, 100
    
  4. POWER(n2, n1)와 SQRT(n) POWER함수는 n2를 n1제곱한 결과를 반환한다. n1은 정수와 실수 모두 올 수 있는데, n2가 음수일때 n1은 정수만 올 수 있다.

    -입력
        SELECT POWER(3, 2), POWER(3, 3), POWER(3, 3.0001) FROM DUAL;
    -출력 
        9, 27, 27.0029664
    
    -입력
        SELECT POWER(-3, 3.0001) FROM DUAL;
    -출력 
        SQL. 오류 : ORA-01428: '-3' 인수가 범위를 벗어났습니다.
    

    SQRT함수는 n의 제곱근을 반환한다.

    -입력
        SELECT SQRT(2), SQRT(5) FROM DUAL;
    -결과 1.41421356, 2.23606798
    
  5. MOD(n2, n1)와 REMAINDER(n2, n1) MOD함수는 n2를 n1으로 나눈 나머지 값을 반환한다.

    -입력
        SELECT MOD(19, 4), MOD(19.123, 4.2) FROM DUAL;
    -결과
        3, 2.323
    

    REMAINDER함수 역시 n2를 n1으로 나눈 나머지 값을 반환하는데, 나머지를 구하는 내부적 연산 방법이 MOD함수와는 약간 다르다.

    • MOD -> n2 - n1 * FLOOR(n2/n1)
    • REMAINDER -> n2 - n1 * ROUND(n2/n1)

      -입력
          SELECT REMIANDER(19, 4), REMAINDER(19.123, 4.2) FROM DUAL;
      -출력
          -1, -1.877
      
  6. EXP(n), LN(n) 그리고 LOG(n2, n1) EXP는 지수 함수로 e(e=2.71818183...)의 n제곱값을 반환하고, NM함수는 자연 로그 함수로 밑수가 e인 로그 함수다. 반면 LOG는 n2를 밑수로 하는 n1의 로그 값을 반환한다.

    -입력
        SELEC EXP(2), LN(2.713), LOG(10, 100) FROM DULA:
    -결과
        7.3890561, 0.998055034, 2
    
0.0.1_20230725_7_v68