四则运算支持说明

最近更新时间:2024-10-08 10:12:31

我的收藏
目前只读分析引擎支持大部分 MySQL 的四则运算逻辑,但在部分场景下仍然存在限制和不兼容。本文介绍在只读分析引擎中四则运算的支持情况,针对输入参数中的类型限制进行了列举。如存在文档中未提到的入参与使用方法则均不支持。

四则运算使用限制

整数相除:若结果的小数位数超过4位,则在只读分析引擎中默认会截断处理,保留小数位数的后4位。
Decimal 类型的除法运算:结果的小数位数会基于被除数的小数位数 + 4进行截断。如 Decimal(9, 1) / Decimal(9, 1),则结果的小数位数会基于5进行截断。
Decimal 的加、减、乘、除运算:若结果的总长度超过65,则会报错提示“out of range”。因为在只读分析引擎中 Decimal 支持的数据类型长度最大为65。
任意数字类型与浮点数类型(float、double)进行数学运算:均会存在精度误差问题,核心原因是 Double 等浮点类型本身就不是严格精度的字段类型。在 MySQL 的实践中也不建议数字类型与浮点类型进行数学计算。
非数值类型的四则运算:涉及到隐式转换,受限于只读分析引擎的 CAST 函数支持情况,在某些场景下,如果 CAST 不支持,相关四则运算也不支持。详细的 CAST 支持情况,请参见 类型转换函数支持说明

四则运算支持类型

+ 加运算符

语法op1 + op2 op1支持值类型:int,bigint,float,double,decimal。 op2支持值类型:int,bigint,float,double,decimal。

- 减运算符

语法op1 - op2 op1支持值类型:int,bigint,float,double,decimal。 op2支持值类型:int,bigint,float,double,decimal。

* 乘运算符

语法op1 op2 op1支持值类型:int,bigint,float,double,decimal。 op2支持值类型:int,bigint,float,double,decimal。

/ 除以预算符

语法op1 / op2 op1支持值类型:int,bigint,float,double,decimal。 op2支持值类型:int,bigint,float,double,decimal。

% 取余运算符

语法op1 % op2 op1支持值类型:int,bigint,float,double,decimal。 op2支持值类型:int,bigint,float,double,decimal。