DBAtlas · Veritabanı operasyon atlası

22012: division_by_zero

PostgreSQL

Ne demek?

Bir aritmetik ifadede sıfıra bölme (ya da sıfırla modulo) yapılmaya çalışıldı. PostgreSQL sıfıra bölmeye izin vermez ve sorguyu durdurur.

Neden olur?

Bölen sütun/ifadenin değerinin 0 olması; oran/yüzde hesabında paydanın sıfır çıkması; COUNT ya da SUM sonucunun sıfır olduğu bir bölme; filtrelenmemiş veride beklenmedik sıfır değerler.

Nasıl çözülür?

Payda sıfır olduğunda NULL döndürmek için NULLIF kullanın: pay / NULLIF(payda, 0). Sonucu isterseniz COALESCE ile varsayılana çevirin: COALESCE(pay / NULLIF(payda,0), 0). Ya da CASE WHEN payda = 0 THEN NULL ELSE pay/payda END kullanın. Verideki sıfır durumlarını önceden filtreleyin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar