Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Soma colunas com valores nulos no oracle


NVL(valor, padrão) é a função que você está procurando.
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 tem 5 funções relacionadas a NULL:
  1. NVL
  2. NVL2
  3. COALESCE
  4. NULLIF
  5. LNNVL

NVL :
NVL(expr1, expr2)

NVL permite substituir null (retornado como um espaço em branco) por uma string nos resultados de uma consulta. Se expr1 for nulo, NVL retornará expr2. Se expr1 não for nulo, NVL retornará expr1.

NVL2 :
NVL2(expr1, expr2, expr3)

O NVL2 permite determinar o valor retornado por uma consulta com base no fato de uma expressão especificada ser nula ou não nula. Se expr1 não for nulo, NVL2 retornará expr2. Se expr1 for nulo, NVL2 retornará expr3.

COALESCE
COALESCE(expr1, expr2, ...)

COALESCE retorna a primeira expr não nula na lista de expressões. Pelo menos uma expr não deve ser o literal NULL. Se todas as ocorrências de expr forem avaliadas como nulas, a função retornará nula.

NULLIF
NULLIF(expr1, expr2)

NULLIF compara expr1 e expr2. Se forem iguais, a função retornará null. Se eles não forem iguais, a função retornará expr1. Você não pode especificar o literal NULL para expr1.

LNNVL
LNNVL(condition)

O LNNVL fornece uma maneira concisa de avaliar uma condição quando um ou ambos os operandos da condição podem ser nulos.

Mais informações sobre o Oracle SQL Functions