Oracle - 숫자함수

갓김치·2020년 8월 12일
0

Oracle

목록 보기
12/33

참고

2020-08-12-02)함수.sql
2020-08-13-01).sql

숫자함수

1) ABS(n)

  • n: 숫자, 혹은 숫자로 바뀔 수 있는 문자 (ABCDEF 16진수)
  • 매개변수로부터 전달 받은 값의 절대값을 반환
    • 매개변수: 주고 받는 통로

예시

잘못된 예

DUAL: 테이블이 없는데 FROM절을 써야하니까 가상테이블(DUMMY테이블)을 만들어줌

2) CEIL, FLOOR

CEIL(n)

  • 주어진 매개변수와 같거나 큰 쪽에서 가장 작은 정수를 반환

FLOOR(n)

  • 주어진 매개변수와 같거나 작은 쪽에서 가장 작은 정수를 반환

    3) ROUND와 TRUNC

  • 데이터 입력, 수정시에는 반올림하지말고 있는 그대로를 저장
  • 연산은 java나 jsp에서 해주면됨

ROUND(n[,1])

  • 주어진 수 n을
    • i > 0 : 소숫점 i+1번째 자리에서 반올림하여 i번째 자리까지 반환
    • i 생략 : 0으로 간주, 소수점 첫째자리에서 반올림
    • i < 0 : 정수부분의 i번째 자리에서 반올림

TRUNC(n,1)

  • 주어진 데이터 n에서 i가 양수인 경우 i+1번째 자리에서 절삭
  • i가 음수인 경우 정수부분 i번째 자리에서 절삭

예시

1. 사원테이블의 급여가 연봉이고 매달급여가 13으로 나눈 값을 지급한다고 할때 부서번호 50번 부서의 직원들의 한달 급여액을 계산하시오

  • Alias: 사원번호, 사원명, 연봉, 월급여액
  • 단, 월급여액은 소수점 2자리에서 반올림하시오

ROUND 만 사용

  • SELECT 절에서 필요없는 '열' 제거
  • WHERE 절에서 필요없는 '행'을 조건에 맞춰 제거

TO_CHAR 와 함께 사용

  • '9,999.0' 유효숫자 관련
  • 0: 무효든 유효든 다 나오게 함
  • 9: 무효의 0을 공백으로, ','도 3자리 수니까 공백으로

TRUNC

4) POWER와 SQRT

POWER(n1, n2)

  • n1을 n2번 거듭제곱한 결과 반환 = n1^n2

SQRT(n)

  • n의 평방근의 값을 반환

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

  • n2를 n1으로 나눈 나머지
  • MOD와 REMAINDE는 내부처리 방식이 다름

MOD(n2,n1)

  • n2 - n1 * FLOOR(n2/n1)

REMAINDER(n2,n1)

  • n2 - n1 * ROUND(n2/n1)

예시

profile
갈 길이 멀다

0개의 댓글