SQL NULL-Funktion

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

Sehen Sie sich die folgende "Products"-Tabelle an:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Computer 699 25 15
2 Drucker 365 36  
3 telefon 280 159 57

Wenn "UnitsOnOrder" optional ist und NULL-Werte enthalten kann.

Wir verwenden das folgende SELECT-Anweisung:

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

Im obigen Beispiel ist das Ergebnis NULL, wenn der Wert "UnitsOnOrder" NULL ist.

Die Funktion ISNULL() von Microsoft wird verwendet, um zu bestimmen, wie NULL-Werte behandelt werden sollen.

Die Funktionen NVL(), IFNULL() und COALESCE() können dasselbe Ergebnis erzielen.

Hier möchten wir, dass NULL-Werte 0 sind.

Hier, wenn "UnitsOnOrder" NULL ist, ist das nicht förderlich für die Berechnung, daher gibt ISNULL() 0 zurück, wenn der Wert NULL ist.

SQL Server / MS Access

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

Oracle

Oracle hat keine ISNULL()-Funktion. Wir können jedoch die Funktion NVL() verwenden, um dasselbe Ergebnis zu erzielen:

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

MySQL

MySQL hat auch eine ähnliche Funktion wie ISNULL(). Allerdings funktioniert sie etwas anders als die Funktion ISNULL() von Microsoft.

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

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

Oder wir können die Funktion COALESCE() verwenden, wie folgt:

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