숫자 함수
숫자 함수#
이 함수는 매개 변수로 숫자 값을 입력 받아 계산 작업을 수행하고 숫자 값을 반환한다.
ABS#
구문#
ABS (number)
설명#
입력된 숫자의 절댓값을 반환하는 함수이다.
예제#
<질의> 세 숫자의 절댓값을 출력하라.
SELECT ABS(-1), ABS(0.0), ABS(1) FROM DUAL;
ABS(-1) ABS(0.0) ABS(1)
----------------------------------------
1 0 1
1 row selected.
<질의> 상품 테이블에서 가장 비싼 품목의 가격과 가장 싼 품목의 가격 차이를 구하라.
SELECT ABS(MIN(price) - MAX(price)) absolute_value FROM goods;
ABSOLUTE_VALUE
-----------------
99033.01
1 row selected.
ACOS#
구문#
ACOS (number)
설명#
아크코사인, 즉 역코사인을 반환하는 함수이다. 아크코사인은 코사인 값이 number인 각도이다. number는 -1에서 1 까지의 값이어야 한다. 입력 값이 이 범위에 속하지 않으면 0.000000을 반환한다. 이 함수는 0에서 π(pi)사이의 DOUBLE 데이터 타입의 숫자 값을 라디안 단위로 반환한다.(1 라디안(radian) = 180º/pi)
예제#
<질의>
SELECT ACOS(.3) Arc_Cosine FROM DUAL;
ARC_COSINE
--------------
1.2661036727795
1 row selected.
ASIN#
구문#
ASIN (number)
설명#
아크사인, 즉 역사인을 반환하는 함수이다. 아크사인은 사인 값이 number인 각도이다. number는 -1에서 1 까지의 값이어야 한다. 입력 값이 이 범위에 속하지 않으면 0.000000을 반환한다. 이 함수는 -π/2에서 π/2사이의 DOUBLE 데이터 타입의 숫자 값을 라디안 단위로 반환한다.
예제#
<질의>
SELECT ASIN(.3) Arc_Sine FROM DUAL;
ARC_SINE
--------------
0.304692654015398
1 row selected.
ATAN#
구문#
ATAN (number)
설명#
아크탄젠트, 즉 역탄젠트를 반환하는 함수이다. 아크탄젠트는 탄젠트 값이 number인 각도이다. 이 함수는 -π/2에서 π/2사이의 DOUBLE 데이터 타입의 숫자 값을 라디안 단위로 반환한다.
예제#
<질의>
SELECT ATAN(.3) Arc_Tangent FROM DUAL;
ARC_TANGENT
--------------
0.291456794477867
1 row selected.
ATAN2#
구문#
ATAN2 (n, m)
설명#
이 함수는 실수 타입의 두 입력 인자를 가지며, n / m의 아크탄젠트 값을 반환한다. 이 함수는 -π(exclusive)에서 π(inclusive)사이의 DOUBLE 데이터 타입의 숫자 값을 라디안 단위로 반환한다.
예제#
<질의>
SELECT ATAN2(.3, .2) Arc_Tangent2 FROM DUAL;
ARC_TANGENT2
---------------
0.982793723247329
1 row selected.
CEIL#
구문#
CEIL (number)
설명#
입력된 값 이상의 가장 작은 정수를 반환하는 함수이다.
예제#
<질의> 각 입력 값에 대해 입력 값 이상의 가장 작은 정수를 구하라.
SELECT CEIL(99.9), CEIL(-99.9) FROM DUAL;
CEIL(99.9) CEIL(-99.9)
---------------------------
100 -99
1 row selected.
<질의> 상품 테이블에서 가장 비싼 품목의 가격과 가장 싼 품목의 가격 차이를 구해 그 값 이상의 가장 작은 정수를 구하라.
SELECT CEIL(ABS (MIN(price) - MAX(price))) Smallest_int FROM goods;
SMALLEST_INT
---------------
99034
1 row selected.
COS#
구문#
COS (number)
설명#
라디안 단위의 부동 소수점 숫자 입력 값의 코사인 값을 라디안 단위로 반환하는 함수이다. 반환 데이터 타입은 DOUBLE이다.
예제#
<질의>
SELECT COS(180 * 3.14159265359/180) Cos_of_180_degrees FROM DUAL;
COS_OF_180_DEGREES
---------------------
-1
1 row selected.
COSH#
구문#
COSH (number)
설명#
입력 값의 쌍곡선 코사인(hyperbolic cosine) 값을 반환하는 함수이다. 반환 데이터 타입은 DOUBLE이다.
COSH(n) = ( e n + e -n )/2
예제#
<질의>
SELECT COSH(0) FROM DUAL;
COSH(0)
--------------
1
1 row selected.
EXP#
구문#
EXP (n)
설명#
이 함수는 e의 n제곱을 반환한다. (e = 2.71828183…) 반환 데이터 타입은 DOUBLE이다.
예제#
<질의>
SELECT EXP(2.4) FROM DUAL;
EXP(2.4)
--------------
11.0231763806416
1 row selected.
FLOOR#
구문#
FLOOR (number)
설명#
입력된 값 이하의 가장 큰 정수를 반환하는 함수이다.
예제#
<질의> 각 입력 값에 대해 입력 값 이하의 가장 큰 정수를 구하라.
SELECT FLOOR(99.9), FLOOR(-99.9) FROM DUAL;
FLOOR(99.9) FLOOR(-99.9)
----------------------------
99 -100
1 row selected.
<질의> 상품 테이블에서 가장 비싼 품목의 가격과 가장 싼 품목의 가격 차이를 구해 그 값 이하의 가장 큰 정수를 구하라.
SELECT FLOOR(ABS(MIN(price) - MAX(price))) Largest_int FROM goods;
LARGEST_INT
--------------
99033
1 row selected.
ISNUMERIC, IS_NUMERIC#
구문#
ISNUMERIC (expr)
설명#
입력한 수식이 숫자 데이터 타입으로 유효한지를 판단한다. 입력한 값이 유효하면 1을, 그렇지 않으면 0을 반환한다.
IS_NUMERIC은 ISNUMERIC과 같은 함수이다.
예제#
<질의> 입력한 데이터 '1.4'가 유효한 숫자형인지 판단하라.
SELECT ISNUMERIC('1.4') FROM DUAL;
ISNUMERIC('1.4')
-------------------
1
1 row selected.
LN#
구문#
LN (n)
설명#
LN 함수는 n의 자연로그를 반환한다. 입력 값은 0 보다 커야 한다.
예제#
<질의>
SELECT LN(2.4) FROM DUAL;
LN(2.4)
--------------
0.8754687373539
1 row selected.
LOG#
구문#
LOG (m, n)
설명#
LOG 함수는 밑이 m인 n의 로그를 반환한다. 밑 m은 0과 1이 아닌 양수이어야 하고, n은 양수이어야 한다.
예제#
<질의>
SELECT LOG(10, 100) FROM DUAL;
LOG(10, 100)
---------------
2
1 row selected.
MOD#
구문#
MOD (m, n)
설명#
m을 n으로 나눈 나머지를 반환하는 함수이다.
예제#
<질의> 10을 3으로 나눈 나머지를 구하라.
SELECT MOD(10, 3) FROM DUAL;
MOD(10, 3)
--------------
1
1 row selected.
<질의> 모든 사람의 급여의 합을 가장 적은 사람의 급여로 나눈 나머지를 구하라.
SELECT MOD(SUM(salary), MIN(salary)) Remainder FROM employees;
REMAINDER
--------------
223000
1 row selected.
NUMAND#
구문#
NUMAND (bigint_a, bigint_b)
설명#
BIGINT 데이터 타입인 bigint_a와 bigint_b의 비트 AND 연산의 결과를 BIGINT 데이터 타입의 결과 값으로 반환하는 함수이다.
예제#
<질의>
SELECT NUMAND( 3, 5 ) FROM DUAL;
NUMAND( 3, 5 )
-----------------------
1
1 row selected.
NUMOR#
구문#
NUMOR (bigint_a, bigint_b)
설명#
BIGINT 데이터 타입인 bigint_a와 bigint_b의 비트 OR 연산의 결과를 BIGINT 데이터 타입의 결과 값으로 반환하는 함수이다.
예제#
<질의>
SELECT NUMOR( 3, 5 ) FROM DUAL;
NUMOR( 3, 5 )
-----------------------
7
1 row selected.
NUMSHIFT#
구문#
NUMSHIFT (bigint, n)
설명#
BIGINT 데이터 타입인 bigint에 비트 n개 만큼 SHIFT한 결과를 BIGINT 데이터 타입의 결과 값으로 반환하는 함수이다.
예제#
<질의>
SELECT NUMSHIFT( 3, -5 ) FROM DUAL;
NUMSHIFT( 3, -5 )
-----------------------
96
1 row selected.
NUMXOR#
구문#
NUMXOR (bigint_a, bigint_b)
설명#
BIGINT 데이터 타입인 bigint_a와 bigint_b의 비트 XOR 연산의 결과를 BIGINT 데이터 타입의 결과 값으로 반환하는 함수이다.
예제#
<질의>
SELECT NUMXOR( 3, 5 ) FROM DUAL;
NUMXOR( 3, 5 )
-----------------------
6
1 row selected.
POWER#
구문#
POWER (m, n)
설명#
POWER 함수는 m의 n 제곱을 반환한다. m과 n은 임의의 숫자일 수 있고, m이 음수이면 n은 정수이어야 한다.
예제#
<질의>
SELECT POWER(3, 2) FROM DUAL;
POWER(3, 2)
--------------
9
1 row selected.
RAND#
구문#
RAND ()
설명#
이 함수는 0 이상부터 1 미만 사이의 임의 숫자를 생성하여 DOUBLE 데이터 타입의 값으로 반환한다.
예제#
<질의>
SELECT RAND() FROM DUAL;
RAND
-------------------------
0.981041718735602
1 row selected.
RANDOM#
구문#
RANDOM (number)
설명#
이 함수는 의사 랜덤 정수형 값(pseudo random integer value)을 반환한다. 반환 값의 범위는 0 부터 INTEGER 형의 최대값, 즉 2,147,483,647이다.
number가 0이 아니면 이 값을 random seed 값으로 사용해서 구한 의사 랜덤 정수를 반환한다. 0이 아닌 같은 seed 값을 사용해서 반복적으로 RANDOM 함수를 호출하면, 같은 값이 반환될 것이다.
예제#
<질의>
SELECT RANDOM(0) FROM DUAL;
RANDOM(0)
--------------
16838
1 row selected.
<질의>
SELECT RANDOM(100) FROM DUAL;
RANDOM(100)
--------------
12662
1 row selected.
ROUND (number)#
구문#
ROUND ( n1 [ , n2 ] )
설명#
반올림 함수이다. n1을 소수점 아래 n2 + 1번째 자리에서 반올림하여 n2번째 자리까지 반환한다. n2를 생략하면 소수점 아래 첫 번째 자리에서 반올림하여 정숫값을 반환한다. n2가 음수일 경우 소수점 앞 n2번째 자리에서 반올림한 값을 반환한다.
예제#
<질의> 다음 ROUND 함수로 표현한 두 개의 식의 결과를 출력하라: ROUND(123.9994, 3), ROUND(123.9995, 3)
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.
<질의> 가장 싼 상품의 값을 정숫값으로 반올림해서 출력하라.
SELECT ROUND( MIN(price) ) FROM goods;
ROUND( MIN(PRICE) )
----------------------
967
1 row selected.
예제 | 결과 |
---|---|
ROUND(748.58, -1) | 750 |
ROUND(748.58, -2) | 700 |
ROUND(748.58, -3) | 1000 |
ROUND는 항상 값을 반환한다. n2가 음수이고 이 값이 소수점 앞의 자릿수보다 클 경우 이 함수는 0을 반환한다.
예제 | 결과 |
---|---|
ROUND(748.58, -4) | 0 |
SIGN#
구문#
SIGN (number)
설명#
number의 부호를 반환하는 함수이다. 입력 값이 양수이면 1, 입력 값이 음수이면 -1, 입력 값이 0이면 0을 돌려준다.
예제#
<질의>
SELECT SIGN(15), SIGN(0), SIGN(-15) FROM DUAL;
SIGN(15) SIGN(0) SIGN(-15)
----------------------------------------
1 0 -1
1 row selected.
<질의> 급여가 1,000달러보다 많으면 1, 적으면 –1 그리고 1,000달러이면 0을 출력하라.
SELECT e_firstname
, e_lastname
, SIGN(salary - 1000) As Wage_class
FROM employees;
E_FIRSTNAME E_LASTNAME WAGE_CLASS
------------------------------------------------------------
Chan-seung Moon
Susan Davenport 1
Ken Kobain 1
.
.
.
20 rows selected.
SIN#
구문#
SIN (n)
설명#
입력한 n (라디안 단위)의 사인 값을 구하는 삼각 함수이다. 반환 데이터 타입은 DOUBLE이다.
예제#
<질의>
SELECT SIN (30 * 3.14159265359/180) Sine_of_30_degrees FROM DUAL;
SINE_OF_30_DEGREES
---------------------
0.5
1 row selected.
SINH#
구문#
SINH (n)
설명#
입력한 n의 쌍곡선 사인(hyperbolic sine)을 반환하는 함수이다. (SINH(n) = ( e n - e -n )/2)
예제#
<질의>
SELECT SINH(1) Hyperbolic_sine_of_1 FROM DUAL;
HYPERBOLIC_SINE_OF_1
-----------------------
1.1752011936438
1 row selected.
SQRT#
구문#
SQRT (n)
설명#
SQRT 함수는 n의 제곱근을 반환한다. n은 음수가 아니어야 한다.
예제#
<질의> 10의 제곱근을 구하라.
SELECT SQRT(10) FROM DUAL;
SQRT(10)
-------------------------
3.16227766016838
1 row selected.
TAN#
구문#
TAN (n)
설명#
입력한 n의 탄젠트를 반환하는 삼각 함수이다. 입력 인수는 라디안 단위이며 반환 값은 DOUBLE 타입이다.
예제#
<질의> 135도 각도의 탄젠트를 구하라.
SELECT TAN (135 * 3.14159265359/180) Tangent_of_135_degrees FROM DUAL;
TANGENT_OF_135_DEGREES
-------------------------
-1
1 row selected.
TANH#
구문#
TANH (n)
설명#
입력한 n의 쌍곡선 탄젠트(hyperbolic tangent)를 반환하는 함수이다.
예제#
<질의>
SELECT TANH(.5) Hyperbolic_tangent_of_ FROM DUAL;
HYPERBOLIC_TANGENT_OF_
-------------------------
0.462117
1 row selected.
TRUNC(number)#
구문#
TRUNC ( n1 [ , n2 ] )
설명#
n1을 소수점아래 n2 번째 자리에서 버림한여 FLOAT 타입 값을 반환한다.
n2이 생략될 경우 0으로 취급하여 소수점 아래 자리를 모두 버린 정수를 반환한다. n2가 음수일 경우 소수점 앞 n2번째 자리를 버린다.
예제#
<질의> 다음의 각 수식에 대해 TRUNC 함수의 결과를 구하라.
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.
<질의> 가장 싼 상품의 정숫값을 출력하라.
SELECT TRUNC(MIN(price)) FROM goods;
TRUNC(MIN(PRICE))
--------------------
966
1 row selected.
BITAND#
구문#
BITAND (bit_a, bit_b)
설명#
bit_a와 bit_b의 비트에 대한 AND 연산 결과를 반환하는 함수이다.
예제#
SELECT TO_CHAR( BITAND( BIT'01010101', BIT'10101010' ) ) FROM DUAL;
TO_CHAR( BITAND( BIT'01010101', BIT'1010
--------------------------------------------
00000000
1 row selected.
BITOR#
구문#
BITOR (bit_a, bit_b)
설명#
bit_a와 bit_b의 비트에 대한 OR 연산 결과를 반환하는 함수이다.
예제#
SELECT TO_CHAR( BITOR( BIT'01010101', BIT'10101010' ) ) FROM DUAL;
TO_CHAR( BITOR( BIT'01010101', BIT'10101
--------------------------------------------
11111111
BITXOR#
구문#
BITXOR (bit_a, bit_b)
설명#
bit_a와 bit_b의 비트에 대한 XOR(exlusive OR) 연산 결과를 반환하는 함수이다.
예제#
SELECT TO_CHAR( BITXOR( BIT'01010101', BIT'10101010' ) ) FROM DUAL;
TO_CHAR( BITXOR( BIT'01010101', BIT'1010
--------------------------------------------
11111111
1 row selected.
BITNOT#
구문#
BITNOT (bit_a)
설명#
bit_a의 비트에 대한 NOT 연산 결과를 반환하는 함수이다.
예제#
SELECT TO_CHAR( BITNOT( BIT'01010101' ) ) FROM DUAL;
TO_CHAR( BITNOT( BIT'01010101' ) )
--------------------------------------
10101010
1 row selected.