콘텐츠로 이동

숫자 함수

숫자 함수#

이 함수는 매개 변수로 숫자 값을 입력 받아 계산 작업을 수행하고 숫자 값을 반환한다.

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 함수는 밑이 mn의 로그를 반환한다. 밑 m은 0과 1이 아닌 양수이어야 하고, n은 양수이어야 한다.

예제#

<질의>

SELECT LOG(10, 100) FROM DUAL;
LOG(10, 100) 
---------------
2           
1 row selected.

MOD#

구문#

MOD (m, n)

설명#

mn으로 나눈 나머지를 반환하는 함수이다.

예제#

<질의> 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_abigint_b의 비트 AND 연산의 결과를 BIGINT 데이터 타입의 결과 값으로 반환하는 함수이다.

예제#

<질의>

SELECT NUMAND( 3, 5 ) FROM DUAL;
NUMAND( 3, 5 )       
-----------------------
1                    
1 row selected.

NUMOR#

구문#

NUMOR (bigint_a, bigint_b)

설명#

BIGINT 데이터 타입인 bigint_abigint_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_abigint_b의 비트 XOR 연산의 결과를 BIGINT 데이터 타입의 결과 값으로 반환하는 함수이다.

예제#

<질의>

SELECT NUMXOR( 3, 5 ) FROM DUAL;
NUMXOR( 3, 5 )       
-----------------------
6                    
1 row selected.

POWER#

구문#

POWER (m, n)

설명#

POWER 함수는 mn 제곱을 반환한다. mn은 임의의 숫자일 수 있고, 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_abit_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_abit_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_abit_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.