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-阿里云