SQL NULL-Funktion
- Vorherige Seite SQL Nulls
- Nächste Seite SQL-Datentypen
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
- Vorherige Seite SQL Nulls
- Nächste Seite SQL-Datentypen