202
團貸網
數學函數__函數_SQL語法參考_雲數據庫 OceanBase-阿裏雲
數學函數能夠對數字表達式進行數學計算。
ROUND(X), ROUND(X,D)
返回一個數值,四舍五入到指定的長度或精度。
返回參數X, 其值接近於最近似的整數。在有兩個參數的情況下,返回X,其值保留到小數點後D位,而第D位的保留方式為四舍五入。若要接保留X值小數點左邊的D位,可將D設為負值。
返回值的類型同第一個自變量相同(假設它是一個整數、雙精度數或小數)。這意味著對於一個整數參數,結果也是一個整數(無小數部分)。
- 對於準確值數字,ROUND()使用“四舍五入” 或“舍入成最接近的數” 的規則:對於一個分數部分為 .5或大於 .5的值,正數則上舍入到鄰近的整數值,負數則下舍入臨近的整數值。(換言之, 其舍入的方向是數軸上遠離零的方向)。對於一個分數部分小於.5 的值,正數則下舍入下一個整數值,負數則下舍入鄰近的整數值,而正數則上舍入鄰近的整數值。
- 對於近似值數字, ROUND()遵循銀行家規則“四舍--大於五入--五取最接近的偶數”的規則: 一個帶有任何小數部分的值會被舍入成最接近的偶數整數。
Oceanbase>select round(2.15,2);
+---------------+
| round(2.15,2) |
+---------------+
| 2.15 |
+---------------+
1 row in set (0.00 sec)
Oceanbase>select round(2555e-2,1);
+------------------+
| round(2555e-2,1) |
+------------------+
| 25.6 |
+------------------+
1 row in set (0.01 sec)
Oceanbase>select round(25e-1), round(25.3e-1),round(35e-1);
+--------------+----------------+--------------+
| round(25e-1) | round(25.3e-1) | round(35e-1) |
+--------------+----------------+--------------+
| 3 | 3 | 4 |
+--------------+----------------+--------------+
1 row in set (0.00 sec)
CEIL(expr)
返回大於或者等於指定表達式的最小整數。
還支持比較運算,結果為BOOL值,被轉化為數字類型處理,產生的結果為1(TRUE)、0 (FALSE);
如果輸入NULL,返回值為NULL。
如果輸入純數字的字符串,支持自動轉換成數字類型。
返回值會被轉化為一個BIGINT。
Oceanbase>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)
Oceanbase>select ceil(name);
ERROR 1166 (42703): Unkown column name 'name'
Oceanbase>select ceil('2');
+-----------+
| ceil('2') |
+-----------+
| 2 |
+-----------+
1 row in set (0.00 sec)
FLOOR(expr)
和CEIL(expr)函數功能類似,返回小於或者等於指定表達式的最大整數。
還支持比較運算,結果為BOOL值,被轉化為數字類型處理,產生的結果為1(TRUE)、0 (FALSE);
如果輸入NULL,返回值為NULL。
如果輸入純數字的字符串,支持自動轉換成數字類型。
返回值會被轉化為一個BIGINT。
Oceanbase>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)
Oceanbase>select floor(name);
ERROR 1166 (42703): Unkown column name 'name'
Oceanbase>select floor('2');
+------------+
| floor('2') |
+------------+
| 2 |
+------------+
1 row in set (0.00 sec)
ABS(expr)
絕對值函數,求表達式絕對值,函數返回值類型與數值表達式的數據類型相同。
還支持比較運算,結果為BOOL值,被轉化為數字類型處理,產生的結果為1(TRUE)、0 (FALSE);
如果輸入NULL,返回值為NULL。
如果輸入純數字的字符串,支持自動轉換成數字類型。
返回值會被轉化為一個BIGINT。
Oceanbase>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(expr)
求補函數,對操作數執行求補運算:用零減去操作數,然後結果返回操作數。
支持比較運算,結果為BOOL值,被轉化為數字類型處理,產生的結果為1(TRUE)、0 (FALSE),再對結果求補。
Oceanbase>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(X)
SIGN(X)返回參數作為-1、 0或1的符號,該符號取決於X的值為負、零或正。
支持比較運算,結果為BOOL值,被轉化為數字類型處理,產生的結果為1(TRUE)、0 (FALSE);
如果輸入NULL,返回值為NULL。
支持浮點數、十六進製數。
Oceanbase>SELECT SIGN(-32), SIGN(0), SIGN(234);
+-----------+---------+-----------+
| SIGN(-32) | SIGN(0) | SIGN(234) |
+-----------+---------+-----------+
| -1 | 0 | 1 |
+-----------+---------+-----------+
1 row in set (0.01 sec)
Oceanbase>select sign(null),sign(false),sign(0x01);
+------------+-------------+------------+
| sign(null) | sign(false) | sign(0x01) |
+------------+-------------+------------+
| NULL | 0 | 1 |
+------------+-------------+------------+
1 row in set (0.00 sec)
CONV(N, from_base, to_base)
不同數基間轉換數字。返回值為一個字符串,由from_base基轉化為to_base基。輸入參數N可以是一個整數或字符串。最小基數為2,而最大基數則為36。如果to_base是一個負數,則N被看作一個帶符號數。否則,N被看作無符號數。from_base如果是負數,則被當作整數處理,符號被忽略。N參數僅支持int類型和字符串類型輸入;from_base和to_base參數僅支持十進製int類型輸入,且取值範圍為[-36,-2]U[2,36]。
非法輸入將導致報錯,其中非法輸入包括以下情況:
- from_base或者to_base不是一個合法的十進製int類型輸入;
- from_base或者to_base超出[-36,-2]U[2,36]的取值範圍;
- N不是一個合法的數字表示,例如取值超出0~9,a~z,A~Z的字符範圍;
- N超出了from_base基的取值範圍,例如from_base為2,而N取值為3;
- N的取值超出了int64的最大表示範圍,即[-9223372036854775807, 9223372036854775807]。
Oceanbase>select conv(9223372036854775807,10,2);
+-----------------------------------------------------------------+
| conv(9223372036854775807,10,2) |
+-----------------------------------------------------------------+
| 111111111111111111111111111111111111111111111111111111111111111 |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)
Oceanbase>select conv('-acc',21,-7);
+--------------------+
| conv('-acc',21,-7) |
+--------------------+
| -16425 |
+--------------------+
1 row in set (0.00 sec)
MOD(N,M)
取餘函數。MOD(N,M), N % M, N MOD M 三種形式是等效的。
MOD()對於帶有小數部分的數值也起作用,它返回除法運算後的精確餘數。
N,M 中任何一個參數為 NULL,返回值都為 NULL。M 為 0 是,也返回 NULL。
Oceanbase>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(X,Y)
返回X的Y次方。
X與Y中任何一個參數為NULL,返回值都為NULL。
Oceanbase>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)
最後更新:2016-11-23 16:03:54
上一篇:
聚合函數__函數_SQL語法參考_雲數據庫 OceanBase-阿裏雲
下一篇:
CREATE DATABASE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
DRDS控製指令__開發手冊_分布式關係型數據庫 DRDS-阿裏雲
視頻雲服務哪家強?阿裏雲上線299創業版套餐受熱捧
進程監控__主機監控_用戶指南_雲監控-阿裏雲
阿裏雲又聯手Intel搞事情 這次是建遊戲生態!
限製和約束__產品簡介_資源編排-阿裏雲
視頻:3分鍾看懂OSS__數據操作常見問題_產品使用問題_對象存儲 OSS-阿裏雲
阿裏雲:量子計算雲平台上線;海康威視、深圳交警戰略合作
將API授權給多個APP__授權相關接口_API_API 網關-阿裏雲
查詢消費端連接__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲
將路由器接口狀態置為激活__路由器接口相關接口_API參考_專有網絡 VPC-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲