SQL 數(shù)值函數(shù)

2018-12-15 18:02 更新

SQL數(shù)字函數(shù)主要用于數(shù)值操作和/或數(shù)學(xué)計(jì)算。 下表詳述了數(shù)字函數(shù):

返回?cái)?shù)值表達(dá)式的反正弦值。 如果值不在-1到1的范圍內(nèi),則返回NULL
NameDescription
ABS()返回?cái)?shù)值表達(dá)式的絕對(duì)值
ACOS()返回?cái)?shù)值表達(dá)式的反余弦值。 如果值不在-1到1的范圍內(nèi),則返回NULL
ASIN() 返回?cái)?shù)值表達(dá)式的反正弦值。 如果值不在-1到1的范圍內(nèi),則返回NULL
ATAN()返回?cái)?shù)值表達(dá)式的反正切
ATAN2()返回傳遞給它的兩個(gè)變量的反正切。
BIT_AND()返回表達(dá)式中的按位AND所有位。
BIT_COUNT()返回傳遞給它的二進(jìn)制值的字符串表示形式
BIT_OR()返回傳遞的表達(dá)式中所有位的按位或。
CEIL()返回不小于傳遞的數(shù)字表達(dá)式的最小整數(shù)值
CEILING()返回不小于傳遞的數(shù)字表達(dá)式的最小整數(shù)值
CONV()將數(shù)值表達(dá)式從一個(gè)基數(shù)轉(zhuǎn)換為另一個(gè)基數(shù)。
COS()返回傳遞的數(shù)值表達(dá)式的余弦值。 數(shù)值表達(dá)式應(yīng)以弧度表示。
COT()返回傳遞的數(shù)值表達(dá)式的余切。
DEGREES()返回從弧度轉(zhuǎn)換為度的數(shù)值表達(dá)式。
EXP()返回自然對(duì)數(shù)(e)的底數(shù)增加到通過(guò)數(shù)字表達(dá)式的權(quán)力。
FLOOR()返回不大于傳遞的數(shù)字表達(dá)式的最大整數(shù)值。
FORMAT()返回四舍五入到小數(shù)位數(shù)的數(shù)字表達(dá)式。
GREATEST()返回輸入表達(dá)式的最大值。
INTERVAL()取多個(gè)表達(dá)式exp1,exp2和exp3等等,如果exp1小于exp2則返回0,如果exp1小于exp3則返回1,以此類(lèi)推。
LEAST()給定兩個(gè)或更多個(gè)時(shí)返回最小值輸入。
LOG()返回傳遞的數(shù)字表達(dá)式的自然對(duì)數(shù)。
LOG10()返回傳遞的數(shù)字表達(dá)式的以10為底的對(duì)數(shù)。
MOD()通過(guò)使用另一個(gè)表達(dá)式返回一個(gè)表達(dá)式的余數(shù)。
OCT()返回傳遞的數(shù)字表達(dá)式的八進(jìn)制值的字符串表示形式。 如果傳遞的值為NULL,則返回NULL。
PI()返回pi的值
POW()返回一個(gè)表達(dá)式的值增加到另一個(gè)表達(dá)式的權(quán)力
POWER()返回一個(gè)表達(dá)式的值增加到另一個(gè)表達(dá)式的權(quán)力
RADIANS()返回從度轉(zhuǎn)換為弧度的傳遞表達(dá)式的值。
ROUND()返回四舍五入為整數(shù)的數(shù)值表達(dá)式。 可用于將表達(dá)式舍入為多個(gè)小數(shù)點(diǎn)
SIN()返回以弧度給出的數(shù)值表達(dá)式的正弦值。
SQRT()返回?cái)?shù)值表達(dá)式的非負(fù)平方根。
STD()返回?cái)?shù)值表達(dá)式的標(biāo)準(zhǔn)偏差。
STDDEV()返回?cái)?shù)值表達(dá)式的標(biāo)準(zhǔn)偏差。
TAN()返回以弧度表示的數(shù)值表達(dá)式的正切值。
TRUNCATE()返回截?cái)酁閑xp2小數(shù)位的數(shù)字exp1。 如果exp2為0,則結(jié)果將不具有小數(shù)點(diǎn)。

ABS(X)

ABS()函數(shù)返回X的絕對(duì)值。請(qǐng)參考以下示例:

SQL> SELECT ABS(2);
+---------------------------------------------------------+
| ABS(2)                                                  |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT ABS(-2);
+---------------------------------------------------------+
| ABS(2)                                                  |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ACOS(X)

此函數(shù)返回X的反余弦值。X的值必須-1或者1之間,否則將返回NULL之間。請(qǐng)參考下面的例子:

SQL> SELECT ACOS(1);
+---------------------------------------------------------+
| ACOS(1)                                                 |
+---------------------------------------------------------+
| 0.000000                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ASIN(X)

ASIN()函數(shù)返回X的反正弦值。X的值必須在-1到1的范圍內(nèi),否則將返回NULL:

SQL> SELECT ASIN(1);
+---------------------------------------------------------+
| ASIN(1)                                                 |
+---------------------------------------------------------+
| 1.5707963267949                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ATAN(X)

此函數(shù)返回X的反正切:

SQL> SELECT ATAN(1);
+---------------------------------------------------------+
| ATAN(1)                                                 |
+---------------------------------------------------------+
| 0.78539816339745                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ATAN2(Y,X)

此函數(shù)返回兩個(gè)參數(shù)的反正切:X和Y。它類(lèi)似于Y / X的反正切,除了兩者的符號(hào)用于查找結(jié)果的象限:

SQL> SELECT ATAN2(3,6);
+---------------------------------------------------------+
| ATAN2(3,6)                                              |
+---------------------------------------------------------+
| 0.46364760900081                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_AND(expression)

BIT_AND函數(shù)返回表達(dá)式中所有位的按位AND。 基本前提是,如果兩個(gè)相應(yīng)的位相同,則按位與操作將返回1,而如果它們不同,則按位與操作將返回0.該函數(shù)本身返回一個(gè)64位整數(shù)值。 如果沒(méi)有匹配項(xiàng),則它將返回18446744073709551615.以下示例在由汽車(chē)的MAKER分組的PRICE列上執(zhí)行BIT_AND函數(shù):

SQL> SELECT 
          MAKER, BIT_AND(PRICE) BITS
          FROM CARS GROUP BY MAKER
+---------------------------------------------------------+
|MAKER           BITS                                     |
+---------------------------------------------------------+
|CHRYSLER        512                                      |
|FORD            12488                                    |
|HONDA           2144                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_COUNT(numeric_value)

BIT_COUNT()函數(shù)返回在numeric_value中有效的位數(shù)。 以下示例演示使用BIT_COUNT()函數(shù)來(lái)返回?cái)?shù)字范圍的活動(dòng)位數(shù):

SQL> SELECT
          BIT_COUNT(2) AS TWO,
          BIT_COUNT(4) AS FOUR,
          BIT_COUNT(7) AS SEVEN
+-----+------+-------+
| TWO | FOUR | SEVEN |
+-----+------+-------+
|   1 |    1 |     3 |
+-----+------+-------+
1 row in set (0.00 sec)

BIT_OR(expression)

BIT_OR()函數(shù)返回表達(dá)式中所有位的按位或。 位或函數(shù)的基本前提是,如果相應(yīng)的位匹配則返回0,如果對(duì)應(yīng)的位不匹配則返回1。 該函數(shù)返回一個(gè)64位整數(shù),如果沒(méi)有匹配的行,則返回0.以下示例在CARS表的PRICE列上執(zhí)行BIT_OR()函數(shù),按MAKER分組:

SQL> SELECT 
          MAKER, BIT_OR(PRICE) BITS
          FROM CARS GROUP BY MAKER
+---------------------------------------------------------+
|MAKER           BITS                                     |
+---------------------------------------------------------+
|CHRYSLER        62293                                    |
|FORD            16127                                    |
|HONDA           32766                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CEIL(X)

CEILING(X)

這些函數(shù)返回不小于X的最小整數(shù)值。請(qǐng)參考以下示例:

SQL> SELECT CEILING(3.46);
+---------------------------------------------------------+
| CEILING(3.46)                                           |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT CEIL(-6.43);
+---------------------------------------------------------+
| CEIL(-6.43)                                             |
+---------------------------------------------------------+
| -6                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONV(N,from_base,to_base)

CONV()函數(shù)的目的是在不同的數(shù)字之間轉(zhuǎn)換數(shù)字。 該函數(shù)返回從from_base轉(zhuǎn)換為to_base的值N的字符串。 最小基數(shù)值為2,最大值為36.如果任何參數(shù)為NULL,則函數(shù)返回NULL。 參考以下示例,將數(shù)字5從基數(shù)16轉(zhuǎn)換為基數(shù)2:

SQL> SELECT CONV(5,16,2);
+---------------------------------------------------------+
| CONV(5,16,2)                                            |
+---------------------------------------------------------+
| 101                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

COS(X)

此函數(shù)返回X的余弦。參考以下示例:

SQL>SELECT COS(90);
+---------------------------------------------------------+
| COS(90)                                                 |
+---------------------------------------------------------+
| -0.44807361612917                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

COT(X)

此函數(shù)返回X的余切。參考以下示例:

SQL>SELECT COT(1);
+---------------------------------------------------------+
| COT(1)                                                  |
+---------------------------------------------------------+
| 0.64209261593433                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DEGREES(X)

此函數(shù)返回從弧度轉(zhuǎn)換為度的X的值。參考以下示例:

SQL>SELECT DEGREES(PI());
+---------------------------------------------------------+
| DEGREES(PI())                                           |
+---------------------------------------------------------+
| 180.000000                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXP(X)

該函數(shù)返回e(自然對(duì)數(shù)的底)的值增加到X的冪。參考以下示例:

SQL>SELECT EXP(3);
+---------------------------------------------------------+
| EXP(3)                                                  |
+---------------------------------------------------------+
| 20.085537                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FLOOR(X)

此函數(shù)返回不大于X的最大整數(shù)值。參考以下示例:

SQL>SELECT FLOOR(7.55);
+---------------------------------------------------------+
| FLOOR(7.55)                                             |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FORMAT(X,D)

FORMAT()函數(shù)用于以以下格式格式化數(shù)字X:###,###,###。##截?cái)嗟紻個(gè)小數(shù)位。 以下示例演示了FORMAT()函數(shù)的使用和輸出:

SQL>SELECT FORMAT(423423234.65434453,2);
+---------------------------------------------------------+
| FORMAT(423423234.65434453,2)                            |
+---------------------------------------------------------+
| 423,423,234.65                                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

GREATEST(N1,N2,N3,..........)

GREATEST()函數(shù)返回輸入?yún)?shù)集合(n1,n2,n3等)中的最大值。 以下示例使用GREATEST()函數(shù)從一組數(shù)值中返回最大數(shù)字:

SQL>SELECT GREATEST(3,5,1,8,33,99,34,55,67,43);
+---------------------------------------------------------+
| GREATEST(3,5,1,8,33,99,34,55,67,43)                     |
+---------------------------------------------------------+
| 99                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

INTERVAL(N,N1,N2,N3,..........)

INTERVAL()函數(shù)將N的值與值列表(N1,N2,N3等)進(jìn)行比較。 如果N <N1,該函數(shù)返回0,如果N <N2,則返回1,如果N <N3,則返回2,等等。 如果N為NULL,它將返回.1。 值列表必須采用N1 <N2 <N3的形式,才能正常工作。 以下代碼是INTERVAL()函數(shù)如何工作的一個(gè)簡(jiǎn)單示例:

SQL>SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10);
+---------------------------------------------------------+
| INTERVAL(6,1,2,3,4,5,6,7,8,9,10)                        |
+---------------------------------------------------------+
| 6                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

請(qǐng)記住,6是大于N的第一個(gè)值的值列表中的從零開(kāi)始的索引。在我們的示例中,7是違規(guī)值,位于第六個(gè)索引槽中。

LEAST(N1,N2,N3,N4,......)

LEAST()函數(shù)與GREATEST()函數(shù)相反。 其目的是從值列表(N1,N2,N3等)返回最小值項(xiàng)。 以下示例顯示LEAST()函數(shù)的正確用法和輸出:

SQL>SELECT LEAST(3,5,1,8,33,99,34,55,67,43);
+---------------------------------------------------------+
| LEAST(3,5,1,8,33,99,34,55,67,43)                        |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOG(X)

LOG(B,X)

函數(shù)的單一參數(shù)版本將返回X的自然對(duì)數(shù)。如果使用兩個(gè)參數(shù)調(diào)用,則返回任意基數(shù)B的X的對(duì)數(shù)。考慮下面的示例:

SQL>SELECT LOG(45);
+---------------------------------------------------------+
| LOG(45)                                                 |
+---------------------------------------------------------+
| 3.806662                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT LOG(2,65536);
+---------------------------------------------------------+
| LOG(2,65536)                                            |
+---------------------------------------------------------+
| 16.000000                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOG10(X)

此函數(shù)返回X的十進(jìn)制對(duì)數(shù)。

SQL>SELECT LOG10(100);
+---------------------------------------------------------+
| LOG10(100)                                              |
+---------------------------------------------------------+
| 2.000000                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MOD(N,M)

此函數(shù)返回N除以M的余數(shù)。請(qǐng)參考以下示例:

SQL>SELECT MOD(29,3);
+---------------------------------------------------------+
| MOD(29,3)                                               |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

OCT(N)

OCT()函數(shù)返回八進(jìn)制數(shù)N的字符串表示。這相當(dāng)于使用CONV(N,10,8)。

SQL>SELECT OCT(12);
+---------------------------------------------------------+
| OCT(12)                                                 |
+---------------------------------------------------------+
| 14                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PI()

這個(gè)函數(shù)簡(jiǎn)單地返回pi的值。 SQL在內(nèi)部存儲(chǔ)pi的完整雙精度值。

SQL>SELECT PI();
+---------------------------------------------------------+
| PI()                                                    |
+---------------------------------------------------------+
| 3.141593                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

POW(X,Y)

POWER(X,Y)

這兩個(gè)函數(shù)返回X的值增加到Y(jié)的冪。

SQL> SELECT POWER(3,3);
+---------------------------------------------------------+
| POWER(3,3)                                              |
+---------------------------------------------------------+
| 27                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RADIANS(X)

此函數(shù)返回X的值,從度數(shù)轉(zhuǎn)換為弧度。

SQL>SELECT RADIANS(90);
+---------------------------------------------------------+
| RADIANS(90)                                             |
+---------------------------------------------------------+
|1.570796                                                 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ROUND(X)

ROUND(X,D)

此函數(shù)將X四舍五入為最接近的整數(shù)。 如果提供了第二個(gè)參數(shù)D,則函數(shù)將X舍入為D個(gè)小數(shù)位。 D必須為正數(shù)或小數(shù)點(diǎn)右邊的所有數(shù)字將被刪除。 考慮下面的例子:

SQL>SELECT ROUND(5.693893);
+---------------------------------------------------------+
| ROUND(5.693893)                                         |
+---------------------------------------------------------+
| 6                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT ROUND(5.693893,2);
+---------------------------------------------------------+
| ROUND(5.693893,2)                                       |
+---------------------------------------------------------+
| 5.69                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SIGN(X)

此函數(shù)返回X(負(fù),零或正)的符號(hào)為-1,0或1。

SQL>SELECT SIGN(-4.65);
+---------------------------------------------------------+
| SIGN(-4.65)                                             |
+---------------------------------------------------------+
| -1                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT SIGN(0);
+---------------------------------------------------------+
| SIGN(0)                                                 |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT SIGN(4.65);
+---------------------------------------------------------+
| SIGN(4.65)                                              |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SIN(X)

此函數(shù)返回X的正弦。參考以下示例:

SQL>SELECT SIN(90);
+---------------------------------------------------------+
| SIN(90)                                                 |
+---------------------------------------------------------+
| 0.893997                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQRT(X)

此函數(shù)返回X的非負(fù)平方根。請(qǐng)參考以下示例:

SQL>SELECT SQRT(49);
+---------------------------------------------------------+
| SQRT(49)                                                |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STD(expression)

STDDEV(expression)

STD()函數(shù)用于返回表達(dá)式的標(biāo)準(zhǔn)偏差。 這等價(jià)于取表達(dá)式的VARIANCE()的平方根。 以下示例計(jì)算CARS表中PRICE列的標(biāo)準(zhǔn)差:

SQL>SELECT STD(PRICE) STD_DEVIATION FROM CARS;
+---------------------------------------------------------+
| STD_DEVIATION                                           |
+---------------------------------------------------------+
| 7650.2146                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TAN(X)

此函數(shù)返回參數(shù)X的正切,以弧度表示。

SQL>SELECT TAN(45);
+---------------------------------------------------------+
| TAN(45)                                                 |
+---------------------------------------------------------+
| 1.619775                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TRUNCATE(X,D)

此函數(shù)用于將X的值截?cái)酁镈個(gè)小數(shù)位。 如果D為0,則刪除小數(shù)點(diǎn)。 如果D為負(fù)數(shù),則截?cái)嘣撝档恼麛?shù)部分中的D個(gè)值。 參考下面的例子:

SQL>SELECT TRUNCATE(7.536432,2);
+---------------------------------------------------------+
| TRUNCATE(7.536432,2)                                    |
+---------------------------------------------------------+
| 7.53                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)