#68123·doris

[错误] 在溢出情况下, SUM() 对 DECIMAL 类型的值默认返回错误值,而 check_overflow_for_decimal 在二进制算术中对同一溢出则报错

作者: hanke580创建于 2026年9月17日更新于 2026年9月17日

两行 DECIMAL(38,0) 保存 10^38 - 1:

表达式 结果
a + a 错误[E-255] 算术溢出: 99999999999999999999999999999999999999 add 99999...
a * 2 错误[E-255] 算术溢出: ... 乘以 2 = 1999999...
SUM(a) -14028236692093846346337460743176821145 — 没有错误

同样的溢出,在同样的两个值,在同样的查询中:在一个表达式中被拒绝,在另一个表达式中返回了一个错误的数值。