Wenn Sie in SQLite NULL-Ergebnisse durch Text wie „N/A“, „None“ oder sogar den Text „NULL“ ersetzen müssen, können Sie eine der drei folgenden Lösungen verwenden.
Beispieldaten
Hier ist zunächst ein Beispiel für eine Abfrage, die einige NULL-Werte zurückgibt.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Ergebnis:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
Beachten Sie, dass die Zeilen 2, 3 und 4 im Fax NULL-Werte enthalten Spalte.
Wir können die folgenden Methoden verwenden, um das Ergebnis so zu ändern, dass die NULL-Spalten „N/A“ anzeigen.
Die ifnull()-Funktion
Der ifnull()
Die Funktion akzeptiert zwei Argumente und gibt das erste zurück, das nicht NULL ist. Wenn beide Argumente NULL sind, wird NULL zurückgegeben.
Das erste Argument sollte also der Wert sein, der nullfähig sein kann oder nicht, und das zweite Argument sollte der Wert sein, durch den Sie alle NULL-Werte ersetzen möchten.
So können wir die vorherige Abfrage so ändern, dass „N/A“ überall dort angezeigt wird, wo das Fax steht Spalte ist NULL.
SELECT
CustomerId,
ifnull(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Ergebnis:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Die coalesce()-Funktion
Die coalesce()
Funktion ist der ifnull()
sehr ähnlich Funktion. Der Unterschied besteht darin, dass coalesce()
akzeptiert mehr als zwei Argumente. Es gibt einfach das erste Nicht-NULL-Argument zurück.
Daher können wir es genauso verwenden wie ifnull()
durch Angabe von zwei Argumenten.
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Ergebnis:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Der .nullvalue Punktbefehl
Wenn Sie die SQLite-Befehlszeilenschnittstelle verwenden, können Sie den .nullvalue
verwenden dot-Befehl, damit Sie nicht bei jeder Abfrage eine der vorherigen Funktionen verwenden müssen.
Wenn Sie diesen Befehl verwenden, geben Sie eine Zeichenfolge an, die verwendet wird, um NULL-Werte zu ersetzen.
Beispiel:
.nullvalue N/A
Wenn Sie jetzt eine Abfrage ausführen, die NULL-Werte zurückgibt, ersetzt die Zeichenfolge „N/A“ diese NULL-Werte.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Ergebnis:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5