新聞中心
ROUND
聲明

按需制作網(wǎng)站可以根據(jù)自己的需求進(jìn)行定制,成都網(wǎng)站設(shè)計、成都網(wǎng)站制作構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司成都網(wǎng)站設(shè)計、成都網(wǎng)站制作的運(yùn)用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義
ROUND(X), ROUND(X,D)
說明
返回一個數(shù)值,四舍五入到指定的長度或精度。
返回參數(shù) X, 其值接近于最近似的整數(shù)。在有兩個參數(shù)的情況下,返回 X,其值保留到小數(shù)點(diǎn)后 D 位,而第 D 位的保留方式為四舍五入。若要接保留 X 值小數(shù)點(diǎn)左邊的 D 位,可將 D 設(shè)為負(fù)值。
返回值的類型同第一個自變量相同(假設(shè)它是一個整數(shù)、雙精度數(shù)或小數(shù))。這意味著對于一個整數(shù)參數(shù),結(jié)果也是一個整數(shù)(無小數(shù)部分)。
-
對于準(zhǔn)確值數(shù)字,
ROUND()使用“四舍五入”或“舍入成最接近的數(shù)”的規(guī)則:對于一個分?jǐn)?shù)部分為 .5 或大于 .5 的值,正數(shù)則上舍入到鄰近的整數(shù)值,負(fù)數(shù)則下舍入臨近的整數(shù)值。(換言之, 其舍入的方向是數(shù)軸上遠(yuǎn)離零的方向)。對于一個分?jǐn)?shù)部分小于 .5 的值,正數(shù)則下舍入下一個整數(shù)值,負(fù)數(shù)則下舍入鄰近的整數(shù)值,而正數(shù)則上舍入鄰近的整數(shù)值。
-
對于近似值數(shù)字,
ROUND()遵循“四舍--大于五入--五取最接近的偶數(shù)”的規(guī)則:一個帶有任何小數(shù)部分的值會被舍入成最接近的偶數(shù)整數(shù)。
例子
obclient> select round(2.15,2);
+---------------+
| round(2.15,2) |
+---------------+
| 2.15 |
+---------------+
1 row in set (0.00 sec)
obclient> select round(2555e-2,1);
+------------------+
| round(2555e-2,1) |
+------------------+
| 25.6 |
+------------------+
1 row in set (0.01 sec)
obclient> select round(25e-1), round(25.3e-1),round(35e-1);
+--------------+----------------+--------------+
| round(25e-1) | round(25.3e-1) | round(35e-1) |
+--------------+----------------+--------------+
| 2 | 3 | 4 |
+--------------+----------------+--------------+
1 row in set (0.00 sec)
CEIL
聲明
CEIL(expr)
說明
返回大于或者等于指定表達(dá)式的最小整數(shù)。
還支持比較運(yùn)算,結(jié)果為 BOOL 值,被轉(zhuǎn)化為數(shù)字類型處理,產(chǎn)生的結(jié)果為 1(TRUE)、0 (FALSE)。
如果輸入 NULL,返回值為 NULL。
如果輸入純數(shù)字的字符串,支持自動轉(zhuǎn)換成數(shù)字類型。
返回值會被轉(zhuǎn)化為一個 BIGINT。
例子
obclient> select ceil(1.2), ceil(-1.2), ceil(1+1.5), ceil(1=1),ceil(1<1),ceil(null);
+-----------+------------+-------------+-----------+-----------+------------+
| ceil(1.2) | ceil(-1.2) | ceil(1+1.5) | ceil(1=1) | ceil(1<1) | ceil(null) |
+-----------+------------+-------------+-----------+-----------+------------+
| 2 | -1 | 3 | 1 | 0 | NULL |
+-----------+------------+-------------+-----------+-----------+------------+
1 row in set (0.00 sec)
obclient> select ceil(name);
ERROR 1054 (42S22): Unknown column 'name' in 'field list'
obclient> select ceil('2');
+-----------+
| ceil('2') |
+-----------+
| 2 |
+-----------+
1 row in set (0.00 sec)
FLOOR
聲明
FLOOR(expr)
說明
和 CEIL(expr) 函數(shù)功能類似,返回小于或者等于指定表達(dá)式的最大整數(shù)。
還支持比較運(yùn)算,結(jié)果為 BOOL 值,被轉(zhuǎn)化為數(shù)字類型處理,產(chǎn)生的結(jié)果為 1(TRUE)、0 (FALSE)。
如果輸入 NULL,返回值為 NULL。
如果輸入純數(shù)字的字符串,支持自動轉(zhuǎn)換成數(shù)字類型。
返回值會被轉(zhuǎn)化為一個 BIGINT。
例子
obclient> select floor(1.2), floor(-1.2), floor(1+1.5), floor(1=1),floor(1<1),floor(null);
+------------+-------------+--------------+------------+------------+-------------+
| floor(1.2) | floor(-1.2) | floor(1+1.5) | floor(1=1) | floor(1<1) | floor(null) |
+------------+-------------+--------------+------------+------------+-------------+
| 1 | -2 | 2 | 1 | 0 | NULL |
+------------+-------------+--------------+------------+------------+-------------+
1 row in set (0.00 sec)
obclient> select floor(name);
ERROR 1054 (42S22): Unknown column 'name' in 'field list'
obclient> select floor('2');
+------------+
| floor('2') |
+------------+
| 2 |
+------------+
1 row in set (0.00 sec)
ABS
聲明
ABS(expr)
說明
絕對值函數(shù),求表達(dá)式絕對值,函數(shù)返回值類型與數(shù)值表達(dá)式的數(shù)據(jù)類型相同。
還支持比較運(yùn)算,結(jié)果為 BOOL 值,被轉(zhuǎn)化為數(shù)字類型處理,產(chǎn)生的結(jié)果為 1(TRUE)、0 (FALSE)。
如果輸入 NULL,返回值為 NULL。
如果輸入純數(shù)字的字符串,支持自動轉(zhuǎn)換成數(shù)字類型。
返回值會被轉(zhuǎn)化為一個 BIGINT。
例子
obclient> select abs(5), abs(-5.777), abs(0), abs(1/2), abs(1-5);
+--------+-------------+--------+----------+----------+
| abs(5) | abs(-5.777) | abs(0) | abs(1/2) | abs(1-5) |
+--------+-------------+--------+----------+----------+
| 5 | 5.777 | 0 | 0.5000 | 4 |
+--------+-------------+--------+----------+----------+
1 row in set (0.00 sec)
NEG
聲明
NEG(expr)
說明
求補(bǔ)函數(shù),對操作數(shù)執(zhí)行求補(bǔ)運(yùn)算:用零減去操作數(shù),然后結(jié)果返回操作數(shù)。
支持比較運(yùn)算,結(jié)果為 BOOL 值,被轉(zhuǎn)化為數(shù)字類型處理,產(chǎn)生的結(jié)果為 1(TRUE)、0 (FALSE),再對結(jié)果求補(bǔ)。
例子
obclient> select neg(1), neg(1+1), neg(2*3), neg(1=1), neg(5<1);
+--------+----------+----------+----------+----------+
| neg(1) | neg(1+1) | neg(2*3) | neg(1=1) | neg(5<1) |
+--------+----------+----------+----------+----------+
| -1 | -2 | -6 | -1 | 0 |
+--------+----------+----------+----------+----------+
1 row in set (0.01 sec)
SIGN
聲明
SIGN(X)
說明
SIGN(X) 返回參數(shù)作為 -1、 0 或 1 的符號,該符號取決于 X 的值為負(fù)、零或正。
支持比較運(yùn)算,結(jié)果為 BOOL 值,被轉(zhuǎn)化為數(shù)字類型處理,產(chǎn)生的結(jié)果為 1(TRUE)、0 (FALSE)。
如果輸入 NULL,返回值為 NULL。
支持浮點(diǎn)數(shù)、十六進(jìn)制數(shù)。
例子
obclient> SELECT SIGN(-32), SIGN(0), SIGN(234);
+-----------+---------+-----------+
| SIGN(-32) | SIGN(0) | SIGN(234) |
+-----------+---------+-----------+
| -1 | 0 | 1 |
+-----------+---------+-----------+
1 row in set (0.01 sec)
obclient> select sign(null),sign(false),sign(0x01);
+------------+-------------+------------+
| sign(null) | sign(false) | sign(0x01) |
+------------+-------------+------------+
| NULL | 0 | 1 |
+------------+-------------+------------+
1 row in set (0.00 sec)
CONV
聲明
CONV(N, from_base, to_base)
說明
不同數(shù)基間轉(zhuǎn)換數(shù)字。返回值為一個字符串,由 from_base 基轉(zhuǎn)化為 to_base 基。輸入?yún)?shù) N 可以是一個整數(shù)或字符串。最小基數(shù)為 2,而最大基數(shù)則為 36。如果 to_base 是一個負(fù)數(shù),則 N 被看作一個帶符號數(shù)。否則,N 被看作無符號數(shù)。from_base 如果是負(fù)數(shù),則被當(dāng)作整數(shù)處理,符號被忽略。N 參數(shù)僅支持 int 類型和字符串類型輸入;from_base 和 to_base 參數(shù)僅支持十進(jìn)制 int 類型輸入,且取值范圍為 [-36, -2] U [2, 36]。
非法輸入將導(dǎo)致報錯,其中非法輸入包括以下情況:
from_base或者to_base不是一個合法的十進(jìn)制 int 類型輸入;
from_base或者to_base超出 [-36,-2] U [2,36] 的取值范圍;
-
N不是一個合法的數(shù)字表示,例如取值超出 0~9,a~z,A~Z 的字符范圍;
-
N超出了from_base基的取值范圍,例如from_base為 2,而N取值為 3;
-
N的取值超出了 int64 的最大表示范圍,即 [-9223372036854775807, 9223372036854775807]。
例子
obclient> select conv(9223372036854775807,10,2);
+-----------------------------------------------------------------+
| conv(9223372036854775807,10,2) |
+-----------------------------------------------------------------+
| 111111111111111111111111111111111111111111111111111111111111111 |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)
obclient> select conv('-acc',21,-7);
+--------------------+
| conv('-acc',21,-7) |
+--------------------+
| -16425 |
+--------------------+
1 row in set (0.00 sec)
MOD
聲明
MOD(N,M)
說明
取余函數(shù)。MOD(N,M), N % M, N MOD M 三種形式是等效的。
MOD() 對于帶有小數(shù)部分的數(shù)值也起作用,它返回除法運(yùn)算后的精確余數(shù)。
N,M 中任何一個參數(shù)為 NULL,返回值都為 NULL。M 為 0 時,也返回 NULL。
例子
obclient> select mod(29,19), 29 mod 19, 29 % 19;
+------------+-----------+---------+
| mod(29,19) | 29 mod 19 | 29 % 19 |
+------------+-----------+---------+
| 10 | 10 | 10 |
+------------+-----------+---------+
1 row in set (0.00 sec)
POW
聲明
POW(X,Y)
說明
返回 X 的 Y 次方。
X 與 Y 中任何一個參數(shù)為 NULL,返回值都為 NULL。
例子
obclient> select pow(4,2), pow(4,-2), pow(1,null);
+----------+-----------+-------------+
| pow(4,2) | pow(4,-2) | pow(1,null) |
+----------+-----------+-------------+
| 16 | 0.0625 | NULL |
+----------+-----------+-------------+
1 row in set (0.00 sec)
POWER
聲明
POWER(X,Y)
說明
POWER(X,Y) 和 POW(X,Y) 是同義函數(shù)。
RAND
聲明
RAND([N])
說明
RAND([N]) 函數(shù)接受 0 個或者 1 個參數(shù)(N 被稱為隨機(jī)數(shù)種子),返回一個范圍是 [0,1.0) 的隨機(jī)浮點(diǎn)數(shù)。如果想獲得一個范圍在 [i, j) 的隨機(jī)整數(shù),可以使用表達(dá)式 FLOOR(I + RAND() * (j - i))。
如果參數(shù) N 不指定,那么在執(zhí)行之前會使用隨機(jī)種子初始化,之后 RAND() 會根據(jù)這個初始化值來生成隨機(jī)數(shù),所以 RAND() 每次會生成不同的隨機(jī)數(shù)序列。
如果參數(shù) N 指定,那么 N 會作為隨機(jī)數(shù)種子來生成隨機(jī)數(shù)。根據(jù) N 是否是常量,分成以下兩種情況:
-
如果
N是常量,那么N在執(zhí)行之前會被當(dāng)成隨機(jī)種子初始化,之后RAND(N)會根據(jù)這個初始化值來生成隨機(jī)數(shù)。相同的N值會生成相同的隨機(jī)數(shù)序列。
-
如果
N是變量(比如N是一個列值),那么N會在每次執(zhí)行的時候作為隨機(jī)數(shù)種子來生成隨機(jī)數(shù)。相同的N值會生成相同的隨機(jī)數(shù)。
除了出現(xiàn)在 SECLET 語句中,RAND([N]) 也可以出現(xiàn)在 WHERE,ORDER BY 和 GROUP BY 語句中,它的執(zhí)行方式還是按照上述規(guī)則執(zhí)行。比如,如果想隨機(jī)的對一個表進(jìn)行排序,可以使用如下 SQL:select from t1 order by rand()。如果想隨機(jī)取樣一個表的 100 行,可以使用如下 SQL:select from t1 order by rand() limit 100。
例子
obclient> select a, b, rand() from t3;
+------+------+---------------------+
| a | b | rand() |
+------+------+---------------------+
| 1 | 1 | 0.641815407799385 |
| 2 | 2 | 0.16825051248841966 |
| 3 | 3 | 0.9158063697775886 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand() from t3;
+------+------+---------------------+
| a | b | rand() |
+------+------+---------------------+
| 1 | 1 | 0.07428034215632857 |
| 2 | 2 | 0.6239826321825224 |
| 3 | 3 | 0.897072165177271 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand(3) from t3;
+------+------+---------------------+
| a | b | rand(3) |
+------+------+---------------------+
| 1 | 1 | 0.9057697559760601 |
| 2 | 2 | 0.37307905813034536 |
| 3 | 3 | 0.14808605345719125 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand(3) from t3;
+------+------+---------------------+
| a | b | rand(3) |
+------+------+---------------------+
| 1 | 1 | 0.9057697559760601 |
| 2 | 2 | 0.37307905813034536 |
| 3 | 3 | 0.14808605345719125 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand(a), rand(b) from t3;
+------+------+---------------------+---------------------+
| a | b | rand(a) | rand(b) |
+------+------+---------------------+---------------------+
| 1 | 1 | 0.40540353712197724 | 0.40540353712197724 |
| 2 | 2 | 0.6555866465490187 | 0.6555866465490187 |
| 3 | 3 | 0.9057697559760601 | 0.9057697559760601 |
+------+------+---------------------+---------------------+
3 rows in set (0.00 sec) 名稱欄目:創(chuàng)新互聯(lián)OceanBase教程:OceanBase數(shù)學(xué)函數(shù)
當(dāng)前路徑:http://fisionsoft.com.cn/article/djdgdhc.html


咨詢
建站咨詢
