domingo, 22 de junio de 2014

A veces queremos obtener la suma de dos campos numéricos, pero si alguno de ellos contiene valores NULL el resultado de la suma es NULL, aun conteniendo algún valor el resto de campos. Si queremos considerar los NULL como 0 a la hora de hacer la suma, podemos utilizar la funcion COALESCE.

Esta función admite una lista de parámetros y devuelve el primer valor no nulo. Si la utilizamos de esta forma COALESCE (nombre_de_campo, 0) nos devolverá 0, en caso de que el valor del campo sea NULL. De esta forma sumaremos 0 y no NULL, obteniendo el resultado deseado.

Ejemplo: 

SELECT gastos1, gastos2, (COALESCE (gastos1, 0) + COALESCE (gastos2, 0)) as total from eventos

Otra opción que se suele utilizar función IFNULL. Como en el siguiente ejemplo:

SELECT gastos1, gastos2, (IFNULL(gastos1, 0) + IFNULL(gastos2, 0)) as total from eventos

Es mejor la primera opción porque la función COALESCE es una función estándar de SQL y funcionará en cualquier motor de base de datos.
Categories:

0 comentarios:

Publicar un comentario

Subscribe to RSS Feed