Oracle NVL -Funktion

Oracle NVL -Funktion

Ein Nullwert ist ein Feld, das leer gelassen wurde oder keinen zugewiesenen Wert hat.

Nullwerte sind in Datenbanken häufig, insbesondere beim Importieren externer Daten. Sofern eine Spalte nicht eine Einschränkung zur Verhinderung von Nullwerten enthält, verwendet die Datenbankmotor wahrscheinlich einen Nullwert für einen fehlenden Wert.

Obwohl Nullwerte häufig sind, können sie zu Datenbankproblemen führen, da die Datenbank keinen Wert hat, mit dem sie arbeiten können. Es ist daher eine gute Praxis, Aktionen anzuwenden, um Nullwerte in Ihren Abfragen zu verarbeiten.

In diesem Beitrag lernen wir, wie Nullwerte in einer bestimmten Tabelle konvertiert werden können, um einen Standardwert zu enthalten, der weniger wahrscheinlich Betriebsfehler in Ihrer Datenbank verursacht.

Oracle NVL -Funktion

Wie bereits erwähnt, ermöglicht es uns, Nullwerte durch aussagekräftigere Werte zu ersetzen. Die Funktionssyntax ist unten bereitgestellt:

NVL (expr1, expr2);

Die Funktion akzeptiert zwei Hauptargumente:

expr1 und expr2 - Dieser Parameter definiert den Wert, der auf Nullwerte getestet wird. 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 Kompatibilität mit den Datentypen zu ermöglichen. Wenn es unmöglich ist, die entsprechenden Datentypen zu konvertieren, wirft die Datenbankmotor einen Fehler auf.

Oracle NVL () Funktion Beispiel Verwendung

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

Beispiel 1

Betrachten Sie das folgende Beispiel:

Wählen Sie NVL ('Hallo', 'Welt') aus Dual;

Im vorherigen Beispiel verwenden wir die Funktion nvl (), um zu testen, ob die Zeichenfolge 'Hallo' ein Nullwert ist. Da der bereitgestellte Wert nicht null ist, gibt die Funktion die Zeichenfolge 'Hallo' zurück.

Beispiel 2

Betrachten Sie das nachstehend gezeigte zweite Beispiel:

Wählen Sie NVL (NULL, 'World') aus Dual;

In diesem Fall gibt die Abfrage die zweite Zeichenfolge wie unten gezeigt zurück: Da der erste Ausdruck ein Nullwert ist:

Beispiel 3

Wir können auch die NVL () -Funktion verwenden, um Nullwerte in einer Datenbanktabelle zu ersetzen. Betrachten Sie die unten gezeigte Tabelle der Mitarbeiter:

Wählen Sie First_Name, last_name, E -Mail, Gehalt, provision_pct von Employees EMP;

Resultierende Tabelle:

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

Wählen Sie First_Name, last_name, 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 commission_pct für nulls zu testen. Wenn es einen Nullwert gibt, geben wir 0 zurück. Ansonsten geben wir den ursprünglichen Wert zurück.

Dies sollte es uns ermöglichen, die Nullwerte 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.

Abschluss

In diesem Tutorial haben Sie gelernt, wie man die Funktion Oracle NVL () verwendet, um Nullwerte durch Standardwerte zu ersetzen. Es ist gut zu bedenken. Gleichzeitig kann die Funktion coalesce () mehrere Werte zurückgeben.

Wenn Sie nach einer Funktion suchen, die mehr als zwei Argumente aufnehmen kann, ohne die Funktion coalesce () zu verwenden, betrachten Sie die Funktion nvl2 ().