③ ROUND(n, i)와 TRUNC(n1, n2)

    ROUND 함수는 매개변수 n을 소수점 기준 (i+1)번 째에서 반올림한 결과를 반환한다. i는 생략할 수 있고 디폴트 값은 0, 즉 소수점 첫 번째 자리에서 반올림이 일어나 정수 부분의 일의 자리에 결과가 반영된다.

    입력

        SELECT ROUND(10.154), ROUND(10.541), ROUND(11.001)
          FROM DUAL;
    

    결과

        ROUND(10.154)  ROUND(10.541)  ROUND(11.001)
        ------------- ------------- ---------------
                  10            11              11
    

    입력

        SELECT ROUND(10.154, 1), ROUND(10.154, 2), ROUND(10.154, 3)
          FROM DUAL;
    

    결과

        ROUND(10.154,1)  ROUND(10.154,2)  ROUND(10.154,3)
        ---------------- --------------- ---------------
                   10.2           10.15          10.154
    

    ROUND(10.154, 3)는 3+1, 즉 네 번째 자리가 0이므로 결과는 10.154가 반환되었다. n이 0일 때는 i에 입력된 숫자에 상관없이 무조건 0을 반환하며, i가 음수이면 소수점을 기준으로 왼쪽 i번째에서 반올림이 일어난다.

    입력

        SELECT ROUND(0, 3), ROUND(115.155, -1), ROUND(115.155, -2)
          FROM DUAL;
    

    결과

        ROUND(0,3) ROUND(115.155,-1) ROUND(115.155,-2)
        ---------- ----------------- -----------------
                0                120               100
    

    첫 번째는 n이 0이므로 무조건 0이 반환됐고 두 번째는 i가 -1이므로 115에서 5가 반올림되어 120이, 세 번째 컬럼에는 -2가 입력되어 115에서 백의 자리 1이 반올림되어 결과는 100이 되었다.

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

    입력

        SELECT TRUNC(115.155), TRUNC(115.155, 1), TRUNC(115.155, 2), TRUNC(115.155, -2)
          FROM DUAL;
    

    결과

        TRUNC(115.155)  TRUNC(115.155,1) TRUNC(115.155,2) TRUNC(115.155,-2)
        --------------- ---------------- ---------------- ------------------
                   115            115.1           115.15                100
    

    ④ POWER(n2, n1)와 SQRT(n)

    POWER 함수는 n2를 n1 제곱한 결과를 반환한다. n1은 정수와 실수 모두 올 수 있는데, n2가 음수일 때 n1은 정수만 올 수 있다.

    입력

        SELECT POWER(3, 2), POWER(3, 3), POWER(3, 3.0001)
          FROM DUAL;
    

    결과

        POWER(3,2)  POWER(3,3)  POWER(3,3.0001)
        ---------- ---------- ----------------
                 9        27       27.0029664
    

    입력

        SELECT POWER(-3, 3.0001)
          FROM DUAL;
    

    결과

        SQL. 오류: ORA-01428: '-3' 인수가 범위를 벗어났습니다.
    

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

    입력

        SELECT SQRT(2), SQRT(5)
          FROM DUAL;
    

    결과

        SQRT(2)        SQRT(5)
        -------------- --------------
            1.41421356     2.23606798
    

    ⑤ MOD(n2, n1)와 REMAINDER(n2, n1)

    MOD 함수는 n2를 n1으로 나눈 나머지 값을 반환한다.

    입력

        SELECT MOD(19,4), MOD(19.123, 4.2)
          FROM DUAL;
    

    결과

        MOD(19,4) MOD(19.123,4.2)
        --------- ---------------
               3           2.323
    

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

    MOD → n2 - n1 * FLOOR (n2/n1)

    REMAINDER → n2 - n1 * ROUND (n2/n1)

    입력

        SELECT REMAINDER(19,4), REMAINDER(19.123, 4.2)
          FROM DUAL;
    

    결과

        REMAINDER(19,4) REMAINDER(19.123,4.2)
        --------------- ----------------------
                     -1                -1.877
    

    ⑥ EXP(n), LN(n) 그리고 LOG(n2, n1)

    EXP는 지수 함수로 e(e=2.71828183…)의 n제곱 값을 반환하고, LN 함수는 자연 로그 함수로 밑수가 e인 로그 함수다. 반면 LOG는 n2를 밑수로 하는 n1의 로그 값을 반환한다.

    입력

        SELECT EXP(2), LN(2.713), LOG(10, 100)
          FROM DUAL;
    

    결과

        EXP(2)     LN(2.713)    LOG(10,100)
        ---------- ------------ -----------
         7.3890561  0.998055034           2
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.