DBAtlas · Atlas für Datenbankbetrieb

22012: division_by_zero

PostgreSQL

Was bedeutet das?

Ein arithmetischer Ausdruck hat versucht, durch null zu dividieren (oder Modulo null zu bilden). PostgreSQL erlaubt keine Division durch null und bricht die Abfrage ab.

Ursache

Die Divisor-Spalte bzw. der Divisor-Ausdruck ergibt 0; ein Nenner von null in einer Verhältnis-/Prozentberechnung; Division durch ein COUNT oder SUM mit dem Wert null; unerwartete Nullwerte in ungefilterten Daten.

Lösung

Verwende NULLIF, um bei einem Nenner von null NULL zurückzugeben: numerator / NULLIF(denominator, 0). Mache das Ergebnis bei Bedarf mit COALESCE zu einem Standardwert: COALESCE(numerator / NULLIF(denominator,0), 0). Oder verwende CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END. Filtere Fälle mit null vorab aus den Daten.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank