DBAtlas · Atlas de operaciones de bases de datos

22012: division_by_zero

PostgreSQL

¿Qué significa?

Una expresión aritmética intentó dividir (o calcular el módulo) por cero. PostgreSQL no permite la división por cero y aborta la consulta.

¿Por qué ocurre?

La columna/expresión divisora vale 0; un denominador cero en un cálculo de proporción/porcentaje; dividir por un COUNT o SUM que es cero; valores cero inesperados en datos sin filtrar.

Cómo solucionarlo

Use NULLIF para devolver NULL cuando el denominador sea cero: numerator / NULLIF(denominator, 0). Si lo desea, convierta el resultado en un valor predeterminado con COALESCE: COALESCE(numerator / NULLIF(denominator,0), 0). O use CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END. Filtre de antemano los casos con cero en los datos.

Abrir en DBAtlas →

Más entradas de este motor