Null Functions

0

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

Schauen Sie sich die folgende „Produkte“ Tabelle an:

P_IdProductNameUnitPriceUnitsInStockUnitsOnOrder
1Jarlsberg10.451615
2Mascarpone32.5623 
3Gorgonzola15.67920

Angenommen, die Spalte „UnitsOnOrder“ ist optional und kann NULL Werte enthalten.

Sehen Sie sich die folgende SELECT Anweisung an:

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

Wenn im obigen Beispiel einer der „UnitsOnOrder“ Werte NULL ist, ist das Ergebnis NULL.

Lösungen

MySQL

Mit der MySQL Funktion IFNULL() können Sie einen alternativen Wert zurückgeben, wenn ein Ausdruck NULL ist:

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

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

SELECT Produktname, Stückpreis * (Lagereinheiten + COALESCE(Bestellte Einheiten, 0))
FROM Produkte;

SQL Server

Mit der SQL Server Funktion ISNULL() können Sie einen alternativen Wert zurückgeben, wenn ein Ausdruck NULL ist:

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

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

MS Access

Die MS Access Funktion IsNull() gibt TRUE (-1) zurück, wenn der Ausdruck ein Nullwert ist, andernfalls FALSE (0):

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

Oracle

Die Oracle NVL() Funktion erzielt dasselbe Ergebnis:

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

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

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
Nach oben scrollen