Oracle
 sql >> Base de données >  >> RDS >> Oracle

Colonnes de somme avec des valeurs nulles dans oracle

NVL(value, default) est la fonction que vous recherchez.

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 a 5 fonctions liées à NULL :

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

LNV :

NVL(expr1, expr2)

NVL vous permet de remplacer null (renvoyé sous forme de blanc) par une chaîne dans les résultats d'une requête. Si expr1 est nul, alors NVL renvoie expr2. Si expr1 n'est pas nul, alors NVL renvoie expr1.

NVL2 :

NVL2(expr1, expr2, expr3)

NVL2 vous permet de déterminer la valeur renvoyée par une requête selon qu'une expression spécifiée est nulle ou non nulle. Si expr1 n'est pas nul, alors NVL2 renvoie expr2. Si expr1 est nul, alors NVL2 renvoie expr3.

COALESCER

COALESCE(expr1, expr2, ...)

COALESCE renvoie la première expression non nulle de la liste d'expressions. Au moins une expr ne doit pas être le littéral NULL. Si toutes les occurrences de expr sont évaluées à null, alors la fonction renvoie null.

NULLIF

NULLIF(expr1, expr2)

NULLIF compare expr1 et expr2. S'ils sont égaux, la fonction renvoie null. S'ils ne sont pas égaux, la fonction renvoie expr1. Vous ne pouvez pas spécifier le littéral NULL pour expr1.

LNNVL

LNNVL(condition)

LNNVL fournit un moyen concis d'évaluer une condition lorsqu'un ou les deux opérandes de la condition peuvent être nuls.

Plus d'infos sur les fonctions Oracle SQL