Das SQLite ifnull()
Mit der Funktion können Sie NULL-Werte durch einen anderen Wert ersetzen.
Es nimmt zwei Argumente entgegen und gibt eine Kopie seines ersten Nicht-NULL-Arguments oder NULL zurück, wenn beide Argumente NULL sind.
Der ifnull()
Funktion entspricht coalesce()
mit zwei Argumenten.
Einfaches Beispiel
Hier ist ein einfaches Beispiel, um das Konzept zu demonstrieren.
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
Ergebnis:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
Die zweite Spalte war NULL und somit 0 wurde stattdessen zurückgegeben.
Datenbankbeispiel
Dieses Beispiel verwendet ifnull()
in einer Datenbankabfrage. Dies zeigt, wie ifnull()
kann nützlich sein, wenn Daten abgefragt werden, die NULL-Werte enthalten können.
Nehmen Sie die folgende Tabelle als Beispiel:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Stick 89.75 3 Foo Cap 11.99 4 Free Widget 0.0 5 Free Foobar 0.0 6 Free Beer
Die meisten Produkte wurden mit Preisen ausgefüllt, aber der Preis für Freibier ist NULL.
Wir können dies auf einen Wert unserer Wahl ändern.
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
Ergebnis:
ProductName ifnull(Price, 0.0) ------------- ------------------ Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer 0.0
Jetzt hat es den gleichen Preis wie die anderen kostenlosen Produkte.
Der Wiederbeschaffungswert muss nicht unbedingt eine Zahl sein. Sie können es auch durch eine Zeichenfolge ersetzen.
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
Ergebnis:
ProductName ifnull(Price, 'FREE!') ------------- ---------------------- Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer FREE!
Wenn beide Argumente NULL sind
Wenn beide Argumente NULL sind, wird NULL zurückgegeben.
SELECT ifnull(NULL, NULL);
Ergebnis:
ifnull(NULL, NULL) ------------------