DBAtlas · データベース運用アトラス

22012: division_by_zero

PostgreSQL

意味

算術式でゼロによる除算 (または剰余) を試行した。PostgreSQL はゼロ除算を許可せず、クエリを中止する。

原因

除数の列/式が 0 と評価される、比率/割合計算での分母がゼロ、ゼロである COUNT や SUM による除算、フィルタされていないデータ内の想定外のゼロ値。

対処方法

分母がゼロのとき NULL を返すよう NULLIF を使う: numerator / NULLIF(denominator, 0)。必要なら COALESCE で結果をデフォルト値にする: COALESCE(numerator / NULLIF(denominator,0), 0)。または CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END を使う。ゼロのケースは事前にデータから除外する。

DBAtlas で開く →

同じデータベースの他の項目