Latest web development tutorials

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

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

Schauen Sie sich die folgende Tabelle "Products":

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20

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

Wir verwenden die folgende SELECT-Anweisung:

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

In dem obigen Beispiel, wenn es "UnitsOnOrder" Wert NULL ist, dann ist das Ergebnis NULL.

Microsofts ISNULL () Funktion wird verwendet, um festzulegen, wie NULL-Werte zu handhaben.

NVL (), IFNULL () und COALESCE () Funktion kann auch die gleichen Ergebnisse zu erzielen.

Hier hoffen wir, dass NULL-Wert 0 ist.

Nun, wenn "UnitsOnOrder" NULL ist, wird es nicht die Berechnung beeinflussen, denn wenn der Wert NULL ist, ISNULL () 0 zurück:

SQL Server / MS Access

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

Orakel

Oracle hat isnull () Funktion nicht. Wir können jedoch die NVL () Funktion verwenden, um das gleiche Ergebnis zu erzielen:

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

MySQL

MySQL hat auch ähnliche ISNULL () Funktion. Aber es funktioniert mit Microsofts ISNULL () -Funktion ist ein bisschen anders.

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

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

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

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