상세 컨텐츠

본문 제목

오라클 숫자함수

프로그래밍/DB

by 라제폰 2008. 12. 23. 09:00

본문


숫자 함수

함수에 매개 변수로 제공되는 숫자 입력 값을 기반으로 하여 계산 작업을 수행하고 숫자 값을 반환한다.

ABS

구문

ABS (number)

설명

입력된 값의 절대값을 돌려준다.

예제

<질의> 세 종류의 숫자에 대한 ABS 함수의 결과를 출력하라.

iSQL> SELECT ABS(-1), ABS(0.0), ABS(1) FROM DUAL; 

<결과>

ABS(-1) ABS(0.0) ABS(1) ---------------------------------------- 1 0 1 1 row selected. 

<질의> 상품 테이블에서 가장 비싼 품목의 가격과 가장 싼 품목의 가격 차이를 구하라.

iSQL> SELECT ABS(MIN(PRICE) - MAX(PRICE)) ABSOLUTE_VALUE FROM GOODS; 

<결과>

ABSOLUTE_VALUE ----------------- 99033.01 1 row selected. 

ACOS

구문

ACOS (n)

설명

코사인 값이 지정한 FLOAT 또는 REAL 형식의 식인 라디안 단위의 각도를 0부터 pi 사이인 특정 각도 (라디안)로 반환한다. 아크코사인 이라고도 한다. 값이 이 범위에 속하지 않으면 0.000000을 반환한다. <= ACOS(1)도 0

1 라디안 = 180º/pi

예제

<질의>

iSQL> SELECT ACOS(.3) Arc_Cosine FROM DUAL; 

<결과>

ARC_COSINE -------------- 1.266104 1 row selected. 

* 참고: DUAL 테이블

iSQL> CREATE TABLE DUAL(X CHAR(1)); Create Success iSQL> INSERT INTO DUAL VALUES('X'); 1 row inserted. iSQL> SELECT * FROM DUAL; DUAL.X --------------- X 1 row selected. 

ASIN

구문

ASIN (n)

설명

사인 값이 지정한 FLOAT 형식의 식인 라디안 단위의 각도를 -pi/2에서 pi/2 사이인 라디안으로 반환한다. 아크사인 이라고도 한다. n값은 -1에서 1 사이인 FLOAT 형식의 식이다. 값이 이 범위에 속하지 않으면 0.000000을 반환한다.

예제

<질의>

iSQL> SELECT ASIN(.3) Arc_Sine FROM DUAL; 

<결과>

ARC_SINE -------------- 0.304693 1 row selected. 

ATAN

구문

ATAN (n)

설명

탄젠트 값이 지정한 FLOAT 형식의 식인 라디안 단위의 각도를 -pi/2 에서 pi/2 사이인 라디안으로 반환한다. 아크탄젠트라고도 한다.

예제

<질의>

iSQL> SELECT ATAN(.3) Arc_Tangent FROM DUAL; 

<결과>

ARC_TANGENT -------------- 0.291457 1 row selected. 

ATAN2

구문

ATAN2 (n, m)

설명

FLOAT 형식의 식인 n과 m의 아크탄젠트 값을 반환한다. 이것은 n / m의 아크탄젠트 값과 비슷하며 반환 값은 -pi 에서 pi 사이인 라디안이다.

예제

<질의>

iSQL> SELECT ATAN2(.3, .2) Arc_Tangent2 FROM DUAL; 

<결과>

ARC_TANGENT2 --------------- 0.982794 1 row selected. 

CEIL

구문

CEIL (number)

설명

입력된 값 이상인 가장 작은 정수를 돌려준다.

예제

<질의> 지정한 숫자 식 (양수 99.9, 음수 -99.9) 이상인 최소 정수를 반환하라.

iSQL> SELECT CEIL(99.9), CEIL(-99.9) FROM DUAL; 

<결과>

CEIL(99.9) CEIL(-99.9) --------------------------- 100 -99 1 row selected. 

<질의> 상품 테이블에서 가장 비싼 품목의 가격과 가장 싼 품목의 가격 차이를 구해 결과보다 큰 가장 작은 정수를 구하라.

iSQL> SELECT CEIL(ABS (MIN(PRICE) - MAX(PRICE))) SMALLEST_INT FROM GOODS; 

<결과>

SMALLEST_INT --------------- 99034 1 row selected. 

COS

구문

COS (n)

설명

FLOAT 형식의 식인 라디안 단위 각도의 삼각법 코사인을 라디안으로 반환하는 수치 연산 함수이다.

예제

<질의>

iSQL> SELECT COS(180 * 3.14159265359/180) Cos_of_180_degrees FROM DUAL; 

<결과>

COS_OF_180_DEGREES --------------------- -1.000000 1 row selected. 

COSH

구문

COSH (n)

설명

입력한 식의 hyperbolic 코사인을 반환한다.

COSH(n) = ( en + e-n )/2

예제

<질의>

iSQL> SELECT COSH(0) FROM DUAL; 

<결과>

COSH(0) -------------- 1.000000 1 row selected. 

EXP

구문

EXP (n)

설명

EXP 함수는 e의 n승을 반환한다. e = 2.71828183…

예제

<질의>

iSQL> SELECT EXP(2.4) FROM DUAL; 

<결과>

EXP(2.4) -------------- 11.023176 1 row selected. 

FLOOR

구문

FLOOR (number)

설명

입력된 값 이하인 가장 큰 정수를 돌려준다

예제

<질의> 지정한 숫자 식 (양수 99.9, 음수 -99.9) 이하인 최대 정수를 반환하라.

iSQL> SELECT FLOOR(99.9), FLOOR(-99.9) FROM DUAL; 

<결과>

FLOOR(99.9) FLOOR(-99.9) ---------------------------- 99 -100 1 row selected. 

<질의> 상품 테이블에서 가장 비싼 품목의 가격과 가장 싼 품목의 가격 차이를 구해 결과보다 작은 가장 큰 정수를 구하라.

iSQL> SELECT FLOOR(ABS (MIN(PRICE) - MAX(PRICE))) LARGEST_INT FROM GOODS; 

<결과>

LARGEST_INT -------------- 99033 1 row selected. 

LN

구문

LN (n)

설명

LN 함수는 0 보다 큰 수 n에 대하여, n의 자연로그를 반환한다.

예제

<질의>

iSQL> SELECT LN(2.4) FROM DUAL; 

<결과>

LN(2.4) -------------- 0.875469 1 row selected. 

LOG

구문

LOG (m, n)

설명

LOG 함수는 밑이 m인 n의 로그를 반환한다. 밑 m은 0과 1이 아닌 임의의 양수이어야 하고, n은 임의의 양수이어야 한다.

예제

<질의>

iSQL> SELECT LOG(10, 100) FROM DUAL; 

<결과>

LOG(10, 100) --------------- 2.000000 1 row selected. 

MOD

구문

MOD (number_a, number_b)

설명

number_a를 number_b로 나눈 나머지를 돌려준다.

예제

<질의> 10을 3으로 나눈 나머지를 구하라.

iSQL> SELECT MOD(10, 3) FROM DUAL; 

<결과>

MOD(10, 3) -------------- 1 1 row selected. 

<질의> 모든 사람의 급여의 합을 가장 적은 사람의 급여로 나눈 나머지를 구하라.

iSQL> SELECT MOD( SUM(SALARY), MIN(SALARY)) REMAINDER FROM EMPLOYEE; 

<결과>

REMAINDER -------------- 223000 1 row selected. 

POWER

구문

POWER (m, n)

설명

POWER 함수는 m의 n승을 반환한다. m과 n은 임의의 숫자일 수 있고, m이 음수라면 n은 정수라야 한다.

예제

<질의>

iSQL> SELECT POWER(3, 2) FROM DUAL; 

<결과>

POWER(3, 2) -------------- 9.000000 1 row selected. 

RANDOM

구문

RANDOM (number)

설명

의사 랜덤 정수형 값(pseudo random integer value)을 반환한다. 반환 범위는 0 부터 integer 형의 최대값이다.

number가 0이 아닌 값이면 random seed 값을 주어진 number로 세팅한 다음, 의사 랜덤 정수를 돌려준다.

같은 seed 값을 가진 RANDOM 함수를 중복해서 부르면, 같은 값이 반환된다.

예제

<질의>

iSQL> SELECT RANDOM(0) FROM DUAL; 

<결과>

RANDOM(0) -------------- 143302914 1 row selected. 

<질의>

iSQL> SELECT RANDOM(100) FROM DUAL; 

<결과>

RANDOM(100) -------------- 105137461 1 row selected. 

ROUND

구문

ROUND ( number_a [ , number_b ] )

설명

반올림 함수

number_a를 소수점 아래 number_b + 1 번째 자리에서 반올림하여 number_b 번째 자리까지 반환한다.

예제

<질의> 다음 ROUND 함수로 표현한 두 개의 식의 결과를 출력하라: ROUND(123.9994, 3), ROUND(123.9995, 3)

iSQL> SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) FROM DUAL; 

<결과>

ROUND(123.9994, 3) ROUND(123.9995, 3) ----------------------------------------- 123.999 124 1 row selected. 

<질의> 가장 싼 상품의 값을 정수값으로 반올림해서 출력하라.

iSQL> SELECT ROUND( MIN(PRICE) ) FROM GOODS; 

<결과>

ROUND( MIN(PRICE) ) ---------------------- 967 1 row selected. 

* 비고:

ROUND는 number_b가 음수일 경우 데이터 형식에 상관없이 반올림한 값을 반환한다.

예제 결과
ROUND(748.58, -1) 750
ROUND(748.58, -2) 700
ROUND(748.58, -3) 1000

ROUND는 항상 값을 반환한다. number_b가 음수이고 소수점 전의 자릿수보다 클 경우 ROUND는 0을 반환한다.

예제 결과
ROUND(748.58, -4) 0

SIGN

구문

SIGN (number)

설명

number의 부호에 따라 다음의 결과를 돌려준다.

양수 일 때: 1, 음수일 때: -1, 그렇지 않으면 0을 돌려준다.

예제

<질의>

iSQL> SELECT SIGN(15), SIGN(0), SIGN(-15) FROM DUAL; 

<결과>

SIGN(15) SIGN(0) SIGN(-15) ---------------------------------------- 1 0 -1 1 row selected. 

<질의> 급여가 100만원 보다 많으면 1, 적으면 -1, 그렇지 않으면 0을 출력하라.

iSQL> SELECT ENAME AS EMPLOYEE_NAME, SIGN(SALARY-1000000) FROM EMPLOYEE; 

<결과>

EMPLOYEE_NAME SIGN(SALARY-1000000) --------------------------------------- SWNO HJNO 1 HSCHOI 1 KSKIM 1 SJKIM 1 HYCHOI 1 HJMIN -1 … 20 rows selected. 

SIN

구문

SIN (n)

설명

특정 각도 (라디안)의 삼각 사인을 근사 숫자 (FLOAT) 식으로 반환합니다.

예제

<질의>

iSQL> SELECT SIN (30 * 3.14159265359/180) Sine_of_30_degrees FROM DUAL; 

<결과>

--------------------- 0.500000 1 row selected. 

SINH

구문

SINH (n)

설명

입력한 식의 hyperbolic 사인을 반환한다.

SINH(n) = ( en - e-n )/2

예제

<질의>

iSQL> SELECT SINH(1) Hyperbolic_sine_of_1 FROM DUAL; 

<결과>

HYPERBOLIC_SINE_OF_1 ----------------------- 1.175201 1 row selected. 

SQRT

구문

SQRT (n)

설명

SQRT 함수는 n의 제곱근을 반환한다. n은 음수가 아니어야 한다.

예제

<질의>

iSQL> SELECT SQRT(10) FROM DUAL; 

<결과>

SQRT(10) -------------- 3.162278 1 row selected. 

TAN

구문

TAN (n)

설명

입력한 식의 탄젠트를 반환한다. 입력 인수는 FLOAT 또는 REAL 형식의 식이며 라디안 수로 해석된다.

예제

<질의>

iSQL> SELECT TAN (135 * 3.14159265359/180) Tangent_of_135_degrees FROM DUAL; 

<결과>

TANGENT_OF_135_DEGREES ------------------------- -1.000000 1 row selected. 

TANH

구문

TANH (n)

설명

입력한 식의 hyperbolic 탄젠트를 반환한다.

예제

<질의>

iSQL> SELECT TANH(.5) Hyperbolic_tangent_of_ FROM DUAL; 

<결과>

HYPERBOLIC_TANGENT_OF_ ------------------------- 0.462117 1 row selected. 

TRUNC

구문

TRUNC ( number_a [ , number_b ] )

설명

버림 함수

number_a를 소수점아래 number_b 번째 자리에서 버림한 결과를 돌려준다.

예제

<질의>

iSQL> SELECT TRUNC(15.79, 1), TRUNC(15.79, -1) FROM DUAL; 

<결과>

TRUNC(15.79, 1) TRUNC(15.79, -1) ------------------------------------ 15.7 10 1 row selected. 

<질의> 가장 싼 상품의 정수값을 출력하라.

iSQL> SELECT TRUNC(MIN(PRICE)) FROM GOODS; 

<결과>

TRUNC(MIN(PRICE)) -------------------- 966 1 row selected. 

관련글 더보기