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

So verwenden Sie die NVL()-Funktion in Oracle

Dieses Oracle SQL-Tutorial enthält Erläuterungen und Beispiele für die NVL-Funktion in Oracle

Was ist die NVL()-Funktion in Oracle

Die NVL-Funktion in Oracle ist eine Verschachtelungsfunktion, die verwendet wird, um Nullwerte durch bestimmte Werte zu ersetzen

In der obigen Syntax

Ausdruck1 :Es sind die Quellwerte oder der Ausdruck, die Null enthalten können. Sie können einen Spaltennamen und eine Funktion für den Spaltennamen angeben
expr2:Dies ist der Zielwert, der platziert wird, falls null von expr1 zurückgegeben wird

Wenn expr1 null ist, gibt NVL expr2 zurück. Wenn expr1 nicht null ist, gibt NVL expr1 zurück.

Wichtige Hinweise
(1) Die Argumente expr1 und expr2 können einen beliebigen Datentyp haben. Wenn ihre Datentypen unterschiedlich sind, konvertiert Oracle Database implizit einen in den anderen. Wenn sie nicht implizit konvertiert werden können, gibt die Datenbank einen Fehler zurück.
Wenn expr1 Zeichendaten sind, konvertiert Oracle Database expr2 in den Datentyp von expr1, bevor sie sie vergleichen, und gibt VARCHAR2 im Zeichensatz von expr1 zurück.

Wenn expr1 numerisch ist, bestimmt Oracle, welches Argument den höchsten numerischen Vorrang hat, wandelt das andere Argument implizit in diesen Datentyp um und gibt diesen Datentyp zurück.

Also würde folgende Anweisung gelingen

select nvl(num-col ,10) from select nvl(char-col ,'NA') from 
select nvl(end_date,'01-MAY-18') from

Die folgende Anweisung würde eine implizite Konvertierung durchführen

select nvl(char-col ,1) from 

Die folgende Anweisung würde fehlschlagen

select nvl(end_date,'m/a') from 
select nvl(user_id,'abc') from

Verwendung der NVL()-Funktion


Diese Funktion ist sehr nützlich, wenn wir keine Nullwerte zurückgeben möchten oder in der numerischen Berechnung, da Null ganze Werte in Null umwandeln würde

Lass uns Nehmen Sie ein Beispiel, um es zu verstehen
Wir haben eine sales_people-Tabelle, die die von Verkäufern getätigten Verkäufe, Provisionsprozentsätze auf die Verkäufe und das Gehalt der Leute enthält. Wir wollen die monatlichen Gesamteinnahmen der Verkäufer berechnen. Verkäufe können Nullwerte haben

Aussage wäre

select name,(salary + sales*provision/100)  Monthy_income from sales_people;

Es werden Nullwerte für alle Personen zurückgegeben, die in diesem Zeitraum keine Verkäufe getätigt haben, da die Berechnung Nullwerte hat

Dies kann durch die Verwendung der nvl-Funktion als

behoben werden
select name,(salary + nvl(sales,0)*provision/100) Monthly_income from sales_people;

Es ist also eindeutig sehr hilfreich bei mathematischen Operationen. Die NVL-Funktion in Oracle ist eine ziemlich nützliche Funktion und kann an vielen Stellen verwendet werden

Liest auch
Oracle-SQL-Datumsfunktionen
NULLIF-Funktion in Oracle
Aktualisierungsanweisung in Oracle
Coalesce-Funktion in Oracle
Änderung des Datumsformats in Oracle
https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions105.htm