In SQLite, se devi sostituire i risultati NULL con testo come "N/A", "Nessuno" o anche il testo "NULL", puoi utilizzare una delle tre soluzioni seguenti.
Dati di esempio
Innanzitutto, ecco un esempio di una query che restituisce alcuni valori NULL.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Risultato:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
Nota che le righe 2, 3 e 4 contengono valori NULL nel Fax colonna.
Possiamo utilizzare i metodi seguenti per modificare il risultato in modo che le colonne NULL visualizzino "N/A".
La funzione ifnull()
Il ifnull()
la funzione accetta due argomenti e restituisce il primo che non è NULL. Se entrambi gli argomenti sono NULL, restituisce NULL.
Quindi, il primo argomento dovrebbe essere il valore che può essere annullato o meno e il secondo argomento dovrebbe essere il valore con cui vuoi sostituire qualsiasi valore NULL.
Ecco come possiamo modificare la query precedente per visualizzare "N/D" ovunque si trovi il Fax la colonna è NULL.
SELECT
CustomerId,
ifnull(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Risultato:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
La funzione coalescent()
Il coalesce()
La funzione è molto simile a ifnull()
funzione. La differenza è che coalesce()
accetta più di due argomenti. Restituisce semplicemente il primo argomento non NULL.
Pertanto, possiamo usarlo esattamente nello stesso modo in cui usiamo ifnull()
fornendo due argomenti.
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Risultato:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Il comando punto .nullvalue
Quando si utilizza l'interfaccia della riga di comando di SQLite, è possibile utilizzare il .nullvalue
dot comando per evitare di dover utilizzare una delle funzioni precedenti ogni volta che esegui una query.
Quando utilizzi questo comando, fornisci una stringa che verrà utilizzata per sostituire i valori NULL.
Esempio:
.nullvalue N/A
Ora, ogni volta che esegui una query che restituisce valori NULL, la stringa "N/D" sostituirà quei valori NULL.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Risultato:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5