📚 Study/Oracle

Oracle :: 숫자 관련 함수(ROUND, TRUNC, MOD, POWER, SQRT, LOG, 삼각함수, SIGN, ASCII, CHR )

bono-hye 2023. 10. 22. 20:48

■ ROUND()

- 반올림 처리해주는 함수

--○ ROUND() 반올림을 처리해 주는 함수
SELECT 48.678 "COL1"            -- 48.678
     , ROUND(48.678, 2) "COL2"  -- 48.68            -- 소수점 이하 둘째자리까지 표현 → 두 번째 파라미터에 의해서
     , ROUND(48.674, 2) "COL3"  -- 48.67
     , ROUND(48.674, 1) "COL4"  -- 48.7
     , ROUND(48.684, 0) "COL5"  -- 49
     , ROUND(48.684) "COL6"     -- 49              --> 두 번째 파라미터가 0 일 경우에는 생략 가능
     , ROUND(48.684, -1) "COL7" -- 50           
     , ROUND(48.684, -2) "COL8" -- 0                -- 절삭됨
     , ROUND(48.684, -3) "COL9" -- 0  
FROM DUAL;

■ TRUNC()

- 절삭 처리해 주는 함수

--○ TRUNC() 절삭을 처리해 주는 함수
SELECT 48.678 "COL1"            -- 48.678
     , TRUNC(48.678, 2) "COL2"  -- 48.67            -- 소수점 이하 둘째자리까지 표현 → 두 번째 파라미터에 의해서  
     , TRUNC(48.674, 2) "COL3"  -- 48.67
     , TRUNC(48.674, 1) "COL4"  -- 48.6
     , TRUNC(48.684, 0) "COL5"  -- 48
     , TRUNC(48.684) "COL6"     -- 48               --> 두 번째 파라미터가 0 일 경우에는 생략 가능       
     , TRUNC(48.684, -1) "COL7" -- 40           
     , TRUNC(48.684, -2) "COL8" -- 0                
     , TRUNC(48.684, -3) "COL9" -- 0  
FROM DUAL;

 

■ MOD()

- 나머지 반환해 주는 함수 (자바에서는 %)

--○ MOD() 나머지를 반환하는 함수 → %(자바에서)
SELECT MOD(5, 2) "COL1"
FROM DUAL;
--> 5를 2로 나눈 나머지 결과값 반환
--==>> 1

 

■ POWER()

- 제곱

SELECT POWER(5, 3) "COL1"
FROM DUAL;
--> 5의 3승을 결과값으로 반환
--==>> 125

 

■ SQRT()

- 루트

--○ SQRT() 루트 결과값을 반환하는 함수
SELECT SQRT(2) "COL1"
FROM DUAL;
--> 루트 2에 대한 결과값 반환
--==>> 1.41421356237309504880168872420969807857

 

■ LOG()

- 로그 함수

--○ LOG() 로그 함수
--   (상용로그, 자연로그 지원)
SELECT LOG(10, 100) "COL1"
     , LOG(10, 2) "COL2"
FROM DUAL;
--==>> 2   0.3010299956639811952137388947244930267695

SELECT LN(95) "COL1"
FROM DUAL;
--==>> 4.55387689160054083460978676511404117675

 

■ 삼각함수, 삼각함수의 역함수

--○ 삼각함수
SELECT SIN(1), COS(1), TAN(1)
FROM DUAL;
--==>> 
/*
0.8414709848078965066525023216302989996233
0.5403023058681397174009366074429766037354
1.55740772465490223050697480745836017308
*/
--> 각각 싸인, 코싸인, 탄젠트 결과값을 반환한다.


--○ 삼각함수의 역함수(범위 : -1 ~ 1)
SELECT ASIN(0.5), ACOS(0.5), ATAN(0.5)
FROM DUAL;
--==>>
/*
0.52359877559829887307710723054658381405   
1.04719755119659774615421446109316762805   
0.4636476090008061162142562314612144020295
*/

 

■ SIGN()

- 연산 결과값이 양수이면 1, 0이면 0, 음수이면 -1

--○ SIGN() 서명, 부호, 특징
--> 연산 결과값이 양수이면 1, 0이면 0, 음수이면 -1 을 반환한다.

SELECT SIGN(5-2) "COL1"
     , SIGN(5-5) "COL2"
     , SIGN(5-7) "COL3"
FROM DUAL;
--==>> 1   0   -1
--> 매출이나 수치와 관련하여 적자 및 흑자의 개념을 나타낼 때 종종 사용된다.

 

■ ASCII(), CHR()

- ASCII : 넘겨받은 문자를 아스키코드 값 반환

- CHR : 넘겨받은 아스키 코드를 문자로 반환

--○ ASCII(), CHR() → 서로 대응(상응)하는 함수
SELECT ASCII('A') "COL1"
     , CHR(65) "COL2"
FROM DUAL;
--==>> 65   A
-- 『ASCII()』 : 매개변수로 넘겨받은 문자의 아스키코드 값을 반환한다.
-- 『CHR()』   : 매개변수로 넘겨받은 아스키코드 값으로 해당 문자를 반환한다.