SQLite
 sql >> Datenbank >  >> RDS >> SQLite

3 Möglichkeiten, NULL in SQLite durch „N/A“ zu ersetzen

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