首页 > 解决方案 > 红移中的乘法

问题描述

我是 Redshift 的新手,尝试在我的 SQL 中进行乘法运算,如下所述

Case  When COALESCE(height * width * length * weight, 0) = 0 then ...

收到以下错误消息,

无效操作:结果比例溢出最大精度详细信息:

有人可以指导我。

标签: sqlamazon-redshift

解决方案


作为Redshift 文档

精确

整数中有效位数的总数:小数点两边的位数。例如,数字 48.2891 的精度为 6,小数位数为 4。如果未指定,则默认精度为 18。最大精度为 38。

所以我认为这取决于您的数据类型的当前精度。一种解决方法是强制转换:

Case When COALESCE(height::decimal(8,3) * width::decimal(8,3) * length::decimal(8,3) * weight::decimal(8,3), 0) = 0 then ...

推荐阅读