1. 수학적 함수
    • ABS(n) : n의 절댓값 반환
    • SIGN(n) : n의 부호에 따라 양수이면 1, 음수이면 -1, 0이면 0을 반환
    • COS(n), SIN(n), TAN(n) : 삼각함수의 값 반환
    • SQRT(n) : n의 제곱근 반환
    • POWER(n, a) : n의 a승 값
    • EXP(n) : 지수 함숫값
  2. GREATEST(n1, n2 [, n3,....]), LEAST(n1, n2[, n3, ....])
    • 주어진 자료에서 가장 큰 값(GREATEST), 작은 값(LEAST)을 찾아 반환
  3. ROUND(n1 [, n2]), TRUNC(n1 [, n2])
    • ROUND : 주어진 수 n1의 소수점 이하 n2 + 1번째 자리에서 반올림
    • TRUNC : 주어진 수 n1의 소숫점 이하 n2 + 1번째 자리부터 절삭(반올림되지 않음)
    • n2가 음수이면 정수 부분의 n2자리에서 반올림(ROUND)또는 절삭(TRUNC) / 0으로 반환
      • -1, -10, -100 순으로 1, 10, 100의 자리가 됨
    • SELECT ROUND(123.456, 1) FROM DUAL;
      //출력 : 123.5
      SELECT ROUND(567.899, -2) FROM DUAL;
      //출력 : 600
      SELECT TRUNC(123.456, 1) FROM DUAL;
      //출력 : 123.4
      SELECT TRUNC(567.899, -2) FROM DUAL;
      //출력 : 500
      • n2가 음수, 양수에 관계없이 ROUND는 올림, TRUNC는 버림이 된다.
  4. MOD(n1, n2)
    • n1을 n2로 나눈 나머지를 반환한다
    • SELECT MOD(10, 3) FROM DUAL;
      //출력 : 1
  5. REMAINDER(n1, n2)
    • n1을 n2로 나눈 나머지를 반환한다
    • SELECT REMAINDER(10, 3) FROM DUAL;
      //출력 : 1
    • MOD와 REMAINDER 모두 나머지를 반환하지만 내부적으로 동작하는 방식이 다르다
    • 일반적으로는 MOD를 많이 사용한다
  6. WIDTH_BUCKET(n1, min, max, block_cnt)
    • 하한 값 min과 상한 값 max로 정한 구간을 block_cnt개수의 블록으로 나누었을 때  n1이 속한 구간 순번을 반환
    • min, max값은 반대로 대입도 가능하다
    • 아래의 코드는 참고를 위해 조인과 케이스 등을 사용하였지만 대략적인 사용방법만 알고 넘어가도록 하자
    •   SELECT A.EMP_NAME AS 사원명,
               C.DEPARTMENT_NAME AS 부서명,
               B.JOB_TITLE AS 직무명,
               A.SALARY AS 급여,
               CASE WHEN WIDTH_BUCKET(A.SALARY, 2000, 20000, 3)=1 THEN
                         '저임금 사원'
                    WHEN WIDTH_BUCKET(A.SALARY, 2000, 20000, 3)=2 THEN
                         '평균임금사원'
                    ELSE
                         '고임금사원'
                    END AS 비고
          FROM HR.EMPLOYEES A, HR.JOBS B, HR.DEPARTMENTS C
         WHERE A.DEPARTMENT_ID=C.DEPARTMENT_ID
               AND A.JOB_ID=B.JOB_ID
      ORDER BY 4;
    • 위와 같이 출력이 되며 급여를 기준으로 3구간으로 나눠서 저임금, 평균임금, 고임금 사원으로 나눈 결과이다.

'DataBase > Oracle' 카테고리의 다른 글

11. Function - 변환함수  (0) 2021.07.24
10. Function - 날짜 함수  (0) 2021.07.24
8. Function - 문자열 함수  (0) 2021.06.22
7. 연산자(Operator)  (0) 2021.06.18
7. 자료형(Data type)  (0) 2021.06.17

+ Recent posts