개발자 미니민의 개발스터디

[Oracle] 오라클 - 단일행 숫자 함수 (ROUND/TRUNC)

by mini_min
[Oracle]
오라클 - 단일행 숫자 함수 (ROUND/TRUNC)

✔️ ROUND 와 TRUNC

둘다 올리고 내리는데 쓰이는 숫자 함수다. 전자는 '반올림' 해주고, 후자는 '절삭' 특정 자리값에서 아예 삭제해버린다.

 

- ROUND(n [, integer ])

SELECT ROUND(15.683) FROM dual;	--0자리라 소수점 첫째자리에서 반올림함
💡 만약, 반올림할 자리값을 생략하면, '0' 으로 간주해서, 소수점 첫째자리에서 반올림한다.
기억하기 쉽게, <나타내고 싶은 자리값> 이라고 생각하면 편하다.
또는 (음수면 소수점 왼쪽부터 반올림된다고 생각하삼)

0 = 0자리까지 나타내고 싶으니까 소수점 첫번째에서 반올림
1 = 소수점 첫째자리 까지 나타내고 싶으니, 소수점 둘째자리에서 반올림
-1 = 10자리까지 나타내고 싶으니까 0자리에서 반올림
SELECT ROUND(15.683, 1) FROM dual; --15.7  (1은 소수점이 한자리 나온다는 뜻이다)
SELECT ROUND(15.683, 2) FROM dual; --15.68

 

 

- TRUNC(n1 [, n2 ])

반올림이고 뭐고, 그냥 소수점 또는 특정 자리 수를 버리고 싶을 때 사용한다. 

(은행과 같은 금융 시스템에서 자주 쓸 기능이라고 기억하기)

SELECT TRUNC(15.683) FROM dual;  --15
SELECT TRUNC(15.683, 2) FROM dual; --15.68

 

 

🔒 문제

-- emp : name, sal, sal 의 5만원권 매수, sal 1만원권 매수, 나머지 금액 출력

    SELECT name, sal, TRUNC(sal/50000) "5만원권", TRUNC(MOD(sal, 50000)/10000) "1만원권", MOD(sal,10000) 기타금액 
    FROM emp;
💡 컬럼명은 숫자로 시작할 수 없고 공백도 불가능하다.
= 공백 또는 숫자로 시작해야 하는 경우 "컬럼명" 처럼 " 안에 기술한다.

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기