Saltar al contenido

SQL: suma 3 columnas cuando una columna tiene un null ¿valor?

Hola, encontramos la respuesta a lo que andabas buscando, deslízate y la obtendrás más abajo.

Solución:

Si la columna tiene un valor de 0, está bien, supongo que tiene un problema con un valor Nulo, en ese caso necesitaría usar IsNull(Column, 0) para asegurarse de que siempre sea 0 como mínimo.

Las respuestas anteriores usando el ISNULL son correctas solo para MS Sql Server. los COALESCE La función también funcionará en SQL Server. Pero también funcionará en sistemas de bases de datos SQL estándar. En el ejemplo dado:

SELECT sum(COALESCE(TotalHoursM,0))
          + COALESCE(TotalHoursT,0)
          + COALESCE(TotalHoursW,0)
          + COALESCE(TotalHoursTH,0)
          + COALESCE(TotalHoursF,0) AS TOTAL FROM LeaveRequest

Este es idéntico al ISNULL solución con la única diferencia que es el nombre de la función. Ambos funcionan en SQL Server pero, COALESCE es el estándar ANSI y ISNULL no es. También, COALESCE es más flexible.
ISNULL solo funcionará con dos parámetros. Si el primer parámetro es NULL, se devuelve el valor del segundo parámetro; de lo contrario, se devuelve el valor del primero. COALESCE tomará 2 a ‘n’ (no sé el límite de ‘n’) parámetros y devolverá el valor del primer parámetro que no es NULL. Cuando hay sólo dos parámetros el efecto es el mismo que ISNULL.

SELECT sum(isnull(TotalHoursM,0)) 
         + isnull(TotalHoursT,0) 
         + isnull(TotalHoursW,0) 
         + isnull(TotalHoursTH,0) 
         + isnull(TotalHoursF,0))
AS TOTAL FROM LeaveRequest

Si haces scroll puedes encontrar las explicaciones de otros desarrolladores, tú asimismo tienes la opción de dejar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *