본문 바로가기
Lecture/SQL & Oracle

[SQL 기본만 알아도 할껀 다한다.]숫자 함수(Number Functions)

by 알 수 없는 사용자 2012. 7. 13.
반응형


문자 함수에 이어 숫자 함수를 알아보겠습니다.


 ROUND

반올림 

 TRUNC

버림 

 CEIL

올림 

 MOD

나머지 연산 


반올림, 버림, 나머지가 뭔진 따로 설명 안하겠습니다;ㅋㅋ

ROUND ( column | expression , n )

이같은 형식으로 사용합니다.

괄호 안 첫자리에 테이블 컬럼이나 수식을 넣고, 다음 자리에 위치나 나눌 값을 넣게 됩니다.

당연히 컬럼의 데이터타입은 Number 여야 합니다. ㅋ 


함수에서 숫자의 자리를 인식하는 법은

숫자

 4

... 

자릿수

-2 

-1 

 

... 

소수점 첫째자리를 0 으로 두고, 소수점 이하자리를 1, 2, 3, ... 으로 세어나가고

0, 10, 100, ... 의 자리를 마이너스로 세어나갑니다.




ROUND 반올림 입니다.

위치값에 따라 45.923 이 어떻게 변하는지 주의해서 봐주세요.


FROM 절에 사용된 dual 은 산술연산이나 날짜 계산 등에 쓰이는 

SYS 소유의 dummy 테이블입니다. 

더 이상의 설명은 기본이 아니기때문에 ..ㅋ

상식으로만 알아두셔도 좋습니다.




함수 첫자리에 수식이 아닌 컬럼을 사용했을 경우 입니다.

자릿수는 -3, 즉 100의 자리로 설정했습니다.

5이상 올림, 5미만 버림, 정확히 계산됩니다.




버림도 반올림과 마찬가지로 자릿수를 인식합니다.

숫자 함수에서 만약 자릿수를 생략한다면 어떻게 처리할까요?

숫자함수에 자릿수는 생략하면 0으로 처리합니다.


올림 CEIL은 예제를 각자 만들어보세요.ㅋ 



MOD는 기준 값으로 나눈 후, 그 나머지 값을 표시하는 나머지 연산입니다.

당연히 5000보다 큰 값은 나오지 않겠지요.



그럼 몫은..??...

그냥 나누기 하시면...되잖아요.ㅋ


이번에 하신 함수들은 숫자만 적용되는 것은 아닙니다.

SQL 작성하실때 제일 헷갈리는 부분이기도 한 날짜 계산에 사용되니,

사용법을 잘 알아두시기 바랍니다.ㅋ