數學函式主要用來處理數值資料,主要的數學函式有:絕對值函式,三角函式(包括正弦函式,餘弦函式,正切函式,餘切函式)、對數函式,隨機函式等。在錯誤產生時,數學函式將返回空值null。本次介紹各種數學函式的功能和用法。
1.絕對值函式ABS(x)和返回圓周率的函式PI()
ABS(x)返回x的絕對值,PI()返回圓周率的值
1 |
eg: select ABS(2),ABS(-3.3),ABS(-33),PI(); |
正數的絕對值是其本身,2的絕對值為2;負數的絕對值為其相反數,-3.3的絕對值為3.3,-33的絕對值為33。
2.平方根函式SQRT(x)
SQRT(x)返回非負數x的二次方根
1 |
eg:select SQRT(9), SQRT(40); |
3.獲取隨機函式的函式RAND()和RAND(x)
RAND(x)返回一個隨機浮點值v,範圍在0~1之間(即0<=v<=1.0).若指定一個整數引數x,則它被用作種子值,使用相同的種子數將產生重複序列。如果同一種子值多次呼叫RAND函式,它將返回同一生成值。
1 |
eg: select RAND(), RAND(), RAND(); |
可以看到,不帶引數的RAND()每次產生的隨即數值是不同的。
1 |
eg: select RAND(10), RAND(10), RAND(11); |
可以看到,當RAND(x)的引數相同時,將產生相同的隨機數,不同的x產生的隨機數值不同。
4.四捨五入函式ROUND(x,y)
ROUND(x,y)返回接近於引數x的數,其值保留到小數點後面y位,若y為負值,則將保留x值到小數點左邊y位。
eg:select ROUND(1.38,1), ROUND(1.38,0), ROUND(232.38,-1), ROUND(232.38,-2);
ROUND(1.38,1)保留小數點後面一位,四捨五入結果為1.4;ROUND(1.38,0)保留小數點後面0位,即返回四捨五入後的整數值,ROUND(232.38,-1)和ROUND(232.38,-2)分別保留小數點左邊1位和2位。
5.符號函式SIGN(x)
SIGN(x)返回引數的符號,x的值為負、零或正時,返回結果依次為-1、0或1。
1 |
eg: select SIGN(-21), SIGN(0), SIGN(21); |
SIGN(-21)返回-1,SIGN(0)返回0,SIGN(21)返回1
6.獲取整數的函式CEILING(x)和FLOOR(x)
CEILING(x)返回不小於x的最小整數值,FLOOR(x)返回不大於x的最大整數值;
eg: select CEILING(-3.35), CEILING(3.35), FLOOR(-3.35), FLOOR(3.35);
(1)、-3.35為負數,不小於-3.35的最小整數為-3,不小於3.35的最小整數值為4
(2)、-3.35為負數,不大於-3.35的最小整數為-4,不大於3.35的最小整數值為3
7.冪運算函式POWER(x,y)、SQUARE(x)、和EXP(x)
(i). POWER(x,y)函式返回x的y次乘方的結果值;
(ii). SQUARE(x)函式返回指定浮點值x的平方;
(iii). EXP(x)函式返回e的x乘方後的值。
1 |
eg: select POWER(2,2), POWER(2.00,-2), SQUARE(3), SQUARE(-3), SQUARE(0), EXP(3), EXP(-3), EXP(0); |
可以看到POWER(2,2)返回2的平方,結果為4;POWER(2.00,-2)返回2的-2次方,結果為0.25;
SQUARE(3)返回 3平方,結果為9;SQUARE(-3)返回-3的平方,結果為; SQUARE(0)返回0的平方,結果為0;
EXP(3)返回以e為底的3次方,結果為20.0855369231877, EXP(-3)返回以e為底的-3次方,結果為0.0497870683678639;
EXP(0)返回以e為底的0次方,結果為1。
8.對數的運算LOG(x)和LOG10(x)
LOG(x)返回x的自然對數,x相對於基數e的對數。
LOG10(x)返回x的基數為10的對數。
1 |
eg: select LOG(3),LOG(6),LOG10(1),LOG10(100),LOG10(1000); |
對數定義域不能為負數,10的0次方為1,所以LOG10(1)返回結果是0,10的2次方為100,所以LOG10(100)返回結果是2,10的3次方為1000,所以LOG10(1000)返回結果是3;
9.角度與弧度相互轉換的函式RANDIANS(x)和DEGREES(x)
RANDIANS(x)將引數x由角度轉換為弧度。
DEGREES(x)將引數x有弧度轉換為角度。
1 |
eg: select RADIANS(90.0), RADIANS(180.0), DEGREES(PI()/2), DEGREES(PI()); |
10.正弦函式SIN(x)和反正弦函式ASIN(x)
SIN(x)返回x的正弦,其中x為弧度值;
ASIN(x)返回x的反正弦,即正弦x的值,若x不在-1到1的範圍內,則返回NULL。
1 |
eg: select SIN(PI()/2),SIN(PI()),ASIN(1),ASIN(0); |
11.餘弦函式COS(x)和反餘弦函式ACOS(x)
COS(x)返回x的餘弦,其中x為弧度值;
ACOS(x)返回x的反餘弦,即餘弦x的值。若x不在-1到1範圍之內,則返回NULL;
1 |
eg: select COS(0),COS(PI()),ACOS(1),ACOS(0); |
12.正切函式TAN(x),反正切函式ATAN(x)和餘切函式COT(x)
TAN(x)返回x的正切,其中x為給定的弧度值;
ATAN(x)返回x的反正切,即正切x的值;
COT(x)返回x的餘切。
1 |
eg: select TAN(0.3),ROUND(TAN(PI()/2),0), ATAN(0.30933624960962325),ATAN(1),COT(0.3),1/TAN(0.3),COT(PI()/4); |