LNNVL-Funktion Oracle/PLSQL

In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL LNNVL-Funktion mit Syntax und Beispielen verwenden.

Beschreibung

Die Oracle/PLSQL-Funktion LNNVL wird in der WHERE-Klausel einer SQL-Anweisung verwendet, um eine Bedingung auszuwerten, wenn einer der Operanden einen NULL-Wert enthalten kann.

Syntax

Die Syntax für die LNNVL-Funktion in Oracle/PLSQL lautet:

LNNVL( condition )

Kehrt zurück

Die LNNVL-Funktion gibt Folgendes zurück:

Bedingung wertet nach LNNVL-Rückgabewert
TRUE FALSE
FALSE TRUE
UNKNOWN TRUE

Wenn wir also zwei Spalten mit den Namen qty und reorder_level hätten, wobei qty = 20 und reorder_level IS NULL sind, würde die LNNVL-Funktion Folgendes zurückgeben:

Bedingung Bedingung wertet nach LNNVL-Rückgabewert
qty = reorder_level UNKNOWN TRUE
qty IS NULL FALSE TRUE
reorder_level IS NULL TRUE FALSE
qty = 20 TRUE FALSE
reorder_level = 20 UNKNOWN TRUE

Gilt für

Die LNNVL-Funktion kann in den folgenden Versionen von Oracle/PLSQL verwendet werden:

  • Oracle 12c, Oracle 11g, Oracle 10g

Beispiel

Die LNNVL-Funktion kann in Oracle/PLSQL verwendet werden.

Schauen wir uns ein Beispiel an. Wenn wir eine products -Tabelle hätten, die folgende Daten enthielt:

PRODUCT_ID QTY REORDER_LEVEL
1000 20 NULL
2000 15 8
3000 8 10
4000 12 6
5000 2 2
6000 4 5

Und wir wollten alle Produkte finden, deren Menge unter ihren jeweiligen Neuordnungsebenen lag. Wir würden die folgende SQL-Anweisung ausführen:

Dies würde das folgende Ergebnis zurückgeben:

PRODUCT_ID QTY REORDER_LEVEL
3000 8 10
6000 4 5

Wenn wir jedoch die products sehen möchten, die unter ihren reorder_levels waren, sowie NULL-Neuordnungsebenen, würden wir die LNNVL verwenden Funktion wie folgt:

Dies würde das folgende Ergebnis zurückgeben:

PRODUCT_ID QTY REORDER_LEVEL
1000 20 NULL
3000 8 10
6000 4 5

In diesem Beispiel enthält dset auch die product_id von 1000, die einen NULL-Wert reorder_level aufweist.