본문 바로가기

프로그래밍/오라클

[ORACLE] 숫자 함수 _ 오라클 sql

[ORACLE] 숫자 함수 _ 오라클 sql



숫자형 함수 연습




1.  ABS : 절대 값을 구해보자.

SELECT  ABS(-352)
FROM    DUAL



2.  SIGN  : SIGN( 숫자 )

=> 양수 = 1, 음수 = -1, 0 = 0 을 리턴

SELECT  SIGN(-126), SIGN(128), SIGN(0)
FROM    DUAL



3.  POWER : POWER( 임의의 수, 승수 )

SELECT  POWER(2, 3)
FROM    DUAL


4.  SQRT  : SQRT( n )

=>   n 제곱근

SELECT  SQRT(4)
FROM    DUAL



5.  이 구역에서 가장 쎈놈 나와!

GREATEST & LEAST

리스트 중에서 제일 큰 값과 작은 값을 리턴하는 함수

!! 제일 첫번째 놓인 컬럼에 또는 문자에 의해 타입이 결정된다!!

SELECT  GREATEST(10,20,30)  "큰값",
        LEAST(10,20,30)     "작은값"
FROM    DUAL

SELECT  GREATEST('A', 9, 'B', 1)
FROM    DUAL
-- 작동 잘 됨. 숫자 또한 ASCII 코드 값이 있다. 
-- 그 코드값으로 변환해서 비교. (숫자는 문자보다 ASCII 코드값이 작다.)

SELECT  GREATEST(10, 'a', 'Z' , 30)
FROM    DUAL
--에러발생 : 문자는 숫자타입으로 자동변환 할 수 없어서. 숫자는 숫자 그대로 크기비교



6.  EXP : 지수함수

SELECT  EXP(1)
FROM    DUAL



7.  거기누구 정수 없소?

     FLOOR : FLOOR(n)

     CEIL  : CEIL(n)

     =>   n과 같거나 작은 수 중, 가장 큰 정수를 리턴!

     =>   n과 같거나 큰 수 중, 가장 작은 정수를 리턴!

SELECT  FLOOR(123.456), 
        FLOOR(124.987),
        CEIL(123.456),
        CEIL(124.5556)
FROM    DUAL



8.  나머지를 구하자.

    MOD : MOD(피제수, 제수)

    REMINDER  : REMINDER(피제수, 제수)

SELECT  MOD(10, 3)
FROM    DUAL



9.  반올림을 하자.

    ROUND : ROUND(컬럼 혹은 숫자, 자릿수)

    =>  자릿수 '0' , 소수점 1의 자리에서 반올림 & 1의 자리까지만 표시

        자릿수 '1' , 소수점 2의 자리에서 반올림 & 소수점 1의 자리까지 표시

        자릿수 '-1' , 정수 1의 자리에서 반올림 & 정수 1의 자리 당연히! 표시!  

SELECT  ROUND(100.65),
        ROUND(100.65,0),
        ROUND(100.65,1),
        ROUND(100.65,-1),
        ROUND(SYSDATE, 'MI') "초"
FROM    DUAL



10. 버림을 하자.

    TRUNC : TRUNC(컬럼 혹은 숫자, 버림할 자릿수)

SELECT  TRUNC(163.5),
        TRUNC(163.5,1),
        TRUNC(163.5,0),
        TRUNC(163.5,-1)
FROM    DUAL