함수에 매개 변수로 제공되는 숫자 입력 값을 기반으로 하여 계산 작업을 수행하고 숫자 값을 반환한다.
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 (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 (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 (n)
탄젠트 값이 지정한 FLOAT 형식의 식인 라디안 단위의 각도를 -pi/2 에서 pi/2 사이인 라디안으로 반환한다. 아크탄젠트라고도 한다.
<질의>
iSQL> SELECT ATAN(.3) Arc_Tangent FROM DUAL;
<결과>
ARC_TANGENT -------------- 0.291457 1 row selected.
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 (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 (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 (n)
입력한 식의 hyperbolic 코사인을 반환한다.
COSH(n) = ( en + e-n )/2
<질의>
iSQL> SELECT COSH(0) FROM DUAL;
<결과>
COSH(0) -------------- 1.000000 1 row selected.
EXP (n)
EXP 함수는 e의 n승을 반환한다. e = 2.71828183…
<질의>
iSQL> SELECT EXP(2.4) FROM DUAL;
<결과>
EXP(2.4) -------------- 11.023176 1 row selected.
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 (n)
LN 함수는 0 보다 큰 수 n에 대하여, n의 자연로그를 반환한다.
<질의>
iSQL> SELECT LN(2.4) FROM DUAL;
<결과>
LN(2.4) -------------- 0.875469 1 row selected.
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 (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 (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 (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 ( 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 (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 (n)
특정 각도 (라디안)의 삼각 사인을 근사 숫자 (FLOAT) 식으로 반환합니다.
<질의>
iSQL> SELECT SIN (30 * 3.14159265359/180) Sine_of_30_degrees FROM DUAL;
<결과>
--------------------- 0.500000 1 row selected.
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 (n)
SQRT 함수는 n의 제곱근을 반환한다. n은 음수가 아니어야 한다.
<질의>
iSQL> SELECT SQRT(10) FROM DUAL;
<결과>
SQRT(10) -------------- 3.162278 1 row selected.
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 (n)
입력한 식의 hyperbolic 탄젠트를 반환한다.
<질의>
iSQL> SELECT TANH(.5) Hyperbolic_tangent_of_ FROM DUAL;
<결과>
HYPERBOLIC_TANGENT_OF_ ------------------------- 0.462117 1 row selected.
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.