OceanBase 数据库支持常用的算术运算符。
算术运算符概览
OceanBase 数据库当前版本所支持的算术运算符的详细信息如下表所示。
| 运算符 | 操作数类型 | 含义 |
|---|---|---|
+ | 一元/二元 | 一元表示正数,二元表示加法。 |
- | 一元/二元 | 一元表示负数,二元表示减法。 |
* | 二元 | 乘法。 |
/ | 二元 | 普通除法。 |
DIV | 二元 | 整数除法,返回商数。 |
MOD 或 % | 二元 | 整数除法,返回余数。 N % M 或 N MOD M 表示返回 N 除以 M 的余数。 |
说明
运算规则
对于整数除法的运算规则特做以下说明:
商数不论正负,统一向 0 取整。
余数正负与被除数相同。
示例如下:
obclient> SELECT (-7) DIV (3.6), (-7) MOD (3.6);
+----------------+----------------+
| (-7) DIV (3.6) | (-7) MOD (3.6) |
+----------------+----------------+
| -1 | -3.4 |
+----------------+----------------+
1 row in set
obclient> SELECT (-7) DIV (-3.4), (-7) % (-3.4);
+-----------------+---------------+
| (-7) DIV (-3.4) | (-7) % (-3.4) |
+-----------------+---------------+
| 2 | -0.2 |
+-----------------+---------------+
1 row in set
运算结果
根据以下规则确定算术运算的结果:
对于
-、+和*,如果两个操作数都是整数,则结果以BIGINT(64 位)精度计算。如果两个操作数都是整数且其中一个是无符号的,则结果为无符号整数。对于减法,如果启用了
NO_UNSIGNED_SUBTRACTIONSQL 模式,即使任何操作数是无符号的,结果也是有符号的。如果
+、-、/、*和%的操作数是实数或字符串值,则结果的精度是具有最大精度操作数的精度。在使用
/进行除法运算时,使用两个精确值操作数时结果的小数位数是第一个操作数的小数位数加上div_precision_increment系统变量的值(默认为 4)。例如,表达式 5.15/0.013 的结果有六个小数位 (396.153846)。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




