DBAtlas · 数据库运维图谱

22012: division_by_zero

PostgreSQL

含义

算术表达式尝试除以零(或对零取模)。PostgreSQL 不允许除以零,并中止查询。

原因

作为除数的列/表达式计算结果为 0;比率/百分比计算中分母为零;除以为零的 COUNT 或 SUM;未过滤的数据中存在意外的零值。

解决方法

使用 NULLIF,在分母为零时返回 NULL:numerator / NULLIF(denominator, 0)。如有需要,用 COALESCE 将结果转为默认值:COALESCE(numerator / NULLIF(denominator,0), 0)。或者使用 CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END。事先过滤掉数据中的零值情况。

在 DBAtlas 中打开 →

同一数据库的其他条目