sql >> Base de Datos >  >> RDS >> Oracle

Sumar columnas con valores nulos en Oracle

NVL (valor, predeterminado) es la función que está buscando.

select type, craft, sum(NVL(regular, 0) + NVL(overtime, 0) ) as total_hours
from hours_t
group by type, craft
order by type, craft

Oracle tiene 5 funciones relacionadas con NULL:

  1. NVL
  2. NVL2
  3. COALESCER
  4. NULLIF
  5. LNNVL

NVL :

NVL(expr1, expr2)

NVL le permite reemplazar nulo (devuelto como un espacio en blanco) con una cadena en los resultados de una consulta. Si expr1 es nulo, NVL devuelve expr2. Si expr1 no es nulo, NVL devuelve expr1.

NVL2 :

NVL2(expr1, expr2, expr3)

NVL2 le permite determinar el valor devuelto por una consulta en función de si una expresión especificada es nula o no. Si expr1 no es nulo, entonces NVL2 devuelve expr2. Si expr1 es nulo, entonces NVL2 devuelve expr3.

COALESCER

COALESCE(expr1, expr2, ...)

COALESCE devuelve la primera expresión no nula de la lista de expresiones. Al menos una expresión no debe ser NULL literal. Si todas las ocurrencias de expr se evalúan como nulas, entonces la función devuelve nulas.

NULLIF

NULLIF(expr1, expr2)

NULLIF compara expr1 y expr2. Si son iguales, la función devuelve nulo. Si no son iguales, la función devuelve expr1. No puede especificar el literal NULL para expr1.

LNNVL

LNNVL(condition)

LNNVL proporciona una forma concisa de evaluar una condición cuando uno o ambos operandos de la condición pueden ser nulos.

Más información sobre funciones SQL de Oracle