sql >> Database teknologi >  >> RDS >> Oracle

Sum kolonner med null-værdier i oracle

NVL(værdi, standard) er den funktion, du leder efter.

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 har 5 NULL-relaterede funktioner:

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

NVL :

NVL(expr1, expr2)

NVL lader dig erstatte null (returneret som tom) med en streng i resultaterne af en forespørgsel. Hvis udtr1 er null, returnerer NVL udtr2. Hvis udtr1 ikke er null, returnerer NVL udtr1.

NVL2 :

NVL2(expr1, expr2, expr3)

NVL2 giver dig mulighed for at bestemme den værdi, der returneres af en forespørgsel, baseret på om et angivet udtryk er null eller ej. Hvis udtr1 ikke er null, returnerer NVL2 udtr2. Hvis udtr1 er null, returnerer NVL2 udtr3.

COALESCE

COALESCE(expr1, expr2, ...)

COALESCE returnerer det første ikke-null-udtryk i udtrykslisten. Mindst én udtr. må ikke være den bogstavelige NULL. Hvis alle forekomster af expr evalueres til null, returnerer funktionen null.

NULLIF

NULLIF(expr1, expr2)

NULLIF sammenligner udtr1 og udtr2. Hvis de er ens, returnerer funktionen null. Hvis de ikke er ens, returnerer funktionen udtr1. Du kan ikke angive det bogstavelige NULL for udtr1.

LNNVL

LNNVL(condition)

LNNVL giver en kortfattet måde at evaluere en betingelse på, når en eller begge operander af betingelsen kan være nul.

Flere oplysninger om Oracle SQL-funktioner



  1. SQLite JSON_VALID()

  2. 3 måder at finde positionen af ​​en understreng i en streng i MySQL

  3. Sådan beregnes løbende total i rødforskydning

  4. Sådan multipliceres to kolonner i SQL