Neueste Web-Entwicklung Tutorials
 

SQL NULL-Funktionen


SQL ISNULL() , NVL() , IFNULL() und COALESCE() Funktionen

Schauen Sie sich die folgenden "Products" Tabelle:

p_id Produktname Einzelpreis Einheiten im Lager UnitsOnOrder
1 Jarlsberg 10,45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15,67 9 20

Angenommen, die "UnitsOnOrder" Spalte optional ist, und NULL - Werte enthalten.

Wir haben die folgende SELECT-Anweisung:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

In dem obigen Beispiel , wenn eine der "UnitsOnOrder" Werte NULL sind, ist das Ergebnis NULL.

Microsofts ISNULL() Funktion wird verwendet , um festzulegen , wie wir NULL - Werte behandelt werden sollen.

Die NVL() , IFNULL() und COALESCE() Funktionen können auch das gleiche Ergebnis zu erreichen , verwendet werden.

In diesem Fall wollen wir NULL-Werte auf Null.

Wenn Unten "UnitsOnOrder" NULL ist , wird es nicht die Berechnung schaden, weil ISNULL() eine Null zurückgibt , wenn der Wert NULL ist:

MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+IIF(ISNULL(UnitsOnOrder),0,UnitsOnOrder))
FROM Products

SQL Server

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle

Oracle keine haben ISNULL() Funktion. Wir können jedoch die Verwendung NVL() Funktion das gleiche Ergebnis zu erzielen:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL

MySQL hat eine haben ISNULL() Funktion. Allerdings funktioniert es ein wenig anders aus Microsofts ISNULL() Funktion.

In MySQL können wir die Verwendung IFNULL() Funktion, wie folgt aus :

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

oder können wir die Verwendung COALESCE() Funktion, wie folgt aus :

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products