더북(TheBook)

③ 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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.