SQLite ifnull()
La funzione consente di sostituire i valori NULL con un altro valore.
Richiede due argomenti e restituisce una copia del suo primo argomento non NULL o NULL se entrambi gli argomenti sono NULL.
Il ifnull()
la funzione è equivalente a coalesce()
con due argomenti.
Semplice esempio
Ecco un semplice esempio per dimostrare il concetto.
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
Risultato:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
La seconda colonna era NULL e quindi 0 è stato invece restituito.
Esempio di database
Questo esempio usa ifnull()
in una query di database. Questo dimostra come ifnull()
può essere utile quando si eseguono query su dati che possono contenere valori NULL.
Prendi la seguente tabella come esempio:
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
La maggior parte dei prodotti è stata popolata con prezzi, ma il prezzo di Birra gratis è NULL.
Possiamo cambiarlo con un valore a nostra scelta.
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
Risultato:
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
Ora ha lo stesso prezzo degli altri prodotti gratuiti.
Il valore di sostituzione non deve necessariamente essere un numero. Puoi anche sostituirlo con una stringa.
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
Risultato:
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!
Quando entrambi gli argomenti sono NULL
Se entrambi gli argomenti sono NULL, viene restituito NULL.
SELECT ifnull(NULL, NULL);
Risultato:
ifnull(NULL, NULL) ------------------