Unterschied zwischen NVL und NVL2, Difference between SQL NVL and NVL2

Unterschied zwischen NVL und NVL2

Rating: 4.69/5. Von 65 Abstimmungen.
Bitte warten...
Unterschied zwischen NVL und NVL2
Unterschied zwischen NVL und NVL2
Werbung / Advertisements

NVL und NVL2 sind beides SQL Funktionen, welche häufig in SQL Statements, SQL Prozeduren oder SQL Funktionen benötigt werden. Dieser Beitrag beschreibt den Unterschied zwischen NVL und NVL2. Bei NVL wird lediglich die erste Expression überprüft. Ist diese ungleich NULL wird das Feld ausgegeben. Tritt hier allerdings ein NULL Wert auf, so wird der zweite Ausdruck ausgeführt bzw. ausgegeben.

IF 
expr1 IS NOT NULL
THEN expr1
END IF;

IF
exp1 IS NULL
THEN expr2
END IF;

Bei NVL2 hingegen muss nicht unbedingt die expr1 ausgegeben werden. Hier kann definiert werden, welcher Wert oder welches Feld ausgegeben werden.

Werbung / Advertisements
IF 
expr1 IS NOT NULL
THEN expr2
END IF;

IF
expr1 IS NULL
THEN expr3
END IF;

NVL2 ist funktionsgleich mit NVL wenn folgendes gilt:

Werbung / Advertisements
NVL(expr1, expr2) = NVL2(expr1, expr1, expr2)

Notwendig sind die Funktionen teilweise bei Abfragen. Wird zum Beispiel eine IF Abfrage durchgeführt, kann es ohne Definition von NULL Values zu einem Fehler kommen. So zum Beispiel bei aggregierten Berechnungen. Wie lautet das Ergebnis der Summe NULL + NULL bzw. undefiniert + undefiniert?

Rating: 4.69/5. Von 65 Abstimmungen.
Bitte warten...
Werbung / Advertisements