Oracle NVL-Funktion

Oracle Nvl Funktion



Ein Nullwert ist ein Feld, das leer gelassen wurde oder dem kein Wert zugewiesen wurde.

NULL-Werte sind in Datenbanken üblich, insbesondere beim Importieren externer Daten. Daher wird die Datenbank-Engine wahrscheinlich einen NULL-Wert für einen fehlenden Wert verwenden, es sei denn, eine Spalte enthält eine Einschränkung, um NULL-Werte zu verhindern.







Obwohl NULL-Werte üblich sind, können sie zu Datenbankproblemen führen, da die Datenbank keinen Wert hat, mit dem sie arbeiten können. Es empfiehlt sich daher, Aktionen anzuwenden, um NULL-Werte in Ihren Abfragen zu verarbeiten.



In diesem Beitrag erfahren Sie, wie Sie NULL-Werte in einer bestimmten Tabelle so konvertieren, dass sie einen Standardwert enthalten, der weniger wahrscheinlich zu Betriebsfehlern in Ihrer Datenbank führt.



Oracle NVL-Funktion

Wie bereits erwähnt, ermöglicht uns diese Funktion, NULL-Werte durch aussagekräftigere Werte zu ersetzen. Die Funktionssyntax ist unten angegeben:





NVL ( Ausdruck1, Ausdruck2 ) ;

Die Funktion akzeptiert zwei Hauptargumente:

Ausdruck1 und Ausdruck2 – Dieser Parameter definiert den Wert, der auf NULL-Werte getestet werden soll. Wenn der Wert von expr1 NULL ist, gibt die Funktion den Wert von expr2 zurück.



Beide Ausdrücke können ähnliche oder unterschiedliche Datentypen haben. Wenn sich die entsprechenden Datentypen unterscheiden, kann die Datenbank-Engine eine implizite Konvertierung durchführen, um eine Kompatibilität mit den Datentypen zu ermöglichen. Wenn es nicht möglich ist, die entsprechenden Datentypen zu konvertieren, wirft die Datenbank-Engine einen Fehler.

Verwendungsbeispiel für die Oracle NVL()-Funktion

Das folgende Beispiel demonstriert die grundlegende Verwendung der Funktion NVL():

Beispiel 1

Betrachten Sie das folgende Beispiel:

wählen Stufe ( 'hallo' , 'Welt' ) von dual;

Im vorherigen Beispiel verwenden wir die Funktion NVL(), um zu testen, ob die Zeichenfolge „hello“ ein NULL-Wert ist. Da der bereitgestellte Wert nicht null ist, gibt die Funktion die Zeichenfolge „hello“ zurück.

Beispiel 2

Betrachten Sie das zweite unten gezeigte Beispiel:

wählen Stufe ( Null, 'Welt' ) von dual;

Da in diesem Fall der erste Ausdruck ein NULL-Wert ist, gibt die Abfrage die zweite Zeichenfolge wie unten gezeigt zurück:

Beispiel 3

Wir können auch die Funktion NVL() verwenden, um NULL-Werte in einer Datenbanktabelle zu ersetzen. Betrachten Sie die unten gezeigte Mitarbeitertabelle:

wählen VORNAME, NACHNAME, E-MAIL, GEHALT, COMMISSION_PCT von EMPLOYEES emp;

Ergebnistabelle:

Wie wir sehen können, enthält die Spalte provisions_pct NULL-Werte. Wir können eine Abfrage erstellen, um die NULL-Werte aus der Spalte provisions_pct durch 0 zu ersetzen, wie im folgenden Beispiel gezeigt:

wählen VORNAME, NACHNAME, E-MAIL, GEHALT, nvl ( COMMISSION_PCT, 0 )
von MITARBEITERN emp;

In der vorherigen Beispielabfrage verwenden wir die Funktion NVL(), um den Wert in der Spalte provisions_pct auf NULLen zu testen. Wenn es einen NULL-Wert gibt, geben wir 0 zurück. Andernfalls geben wir den ursprünglichen Wert zurück.

Dies sollte es uns ermöglichen, die NULL-Werte in der Spalte durch 0 zu ersetzen, wie in der resultierenden Tabelle unten gezeigt:

Wir können dies mit einer UPDATE-Anweisung verwenden oder den resultierenden Wert in einer Tabellenansicht speichern.

Fazit

In diesem Lernprogramm haben Sie gelernt, wie Sie die Oracle NVL()-Funktion verwenden, um NULL-Werte durch Standardwerte zu ersetzen. Denken Sie daran, dass die NVL()-Funktion zwar der COALESCE()-Funktion sehr ähnlich ist, die NVL()-Funktion jedoch nur einen einzelnen Wert zurückgeben kann. Gleichzeitig kann die coalesce()-Funktion mehrere Werte zurückgeben.

Wenn Sie nach einer Funktion suchen, die mehr als zwei Argumente annehmen kann, ohne die coalesce()-Funktion zu verwenden, ziehen Sie die NVL2()-Funktion in Betracht.