Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Summenspalten mit Nullwerten in Oracle

NVL(value, default) ist die gesuchte Funktion.

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 hat 5 NULL-bezogene Funktionen:

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

NVL :

NVL(expr1, expr2)

Mit NVL können Sie null (als Leerzeichen zurückgegeben) in den Ergebnissen einer Abfrage durch eine Zeichenfolge ersetzen. Wenn expr1 null ist, gibt NVL expr2 zurück. Wenn expr1 nicht null ist, gibt NVL expr1 zurück.

NVL2 :

NVL2(expr1, expr2, expr3)

Mit NVL2 können Sie den von einer Abfrage zurückgegebenen Wert basierend darauf bestimmen, ob ein bestimmter Ausdruck null ist oder nicht. Wenn expr1 nicht null ist, gibt NVL2 expr2 zurück. Wenn expr1 null ist, gibt NVL2 expr3 zurück.

VEREINIGUNG

COALESCE(expr1, expr2, ...)

COALESCE gibt den ersten Nicht-Null-Ausdruck in der Ausdrucksliste zurück. Mindestens ein Ausdruck darf nicht das Literal NULL sein. Wenn alle Vorkommen von expr zu null ausgewertet werden, gibt die Funktion null zurück.

NULLIF

NULLIF(expr1, expr2)

NULLIF vergleicht expr1 und expr2. Wenn sie gleich sind, gibt die Funktion null zurück. Wenn sie nicht gleich sind, gibt die Funktion expr1 zurück. Sie können für expr1 nicht das Literal NULL angeben.

LNNVL

LNNVL(condition)

LNNVL bietet eine präzise Möglichkeit, eine Bedingung auszuwerten, wenn einer oder beide Operanden der Bedingung null sein können.

Weitere Informationen zu Oracle SQL-Funktionen