SQL IFNULL(): restituire valori alternativi invece di valori NULL
La funzione SQL IFNULL() si usa per verificare il valore di un’espressione. Se l’espressione restituisce NULL, la funzione interviene sostituendo tale valore con un valore alternativo. Se invece il valore non è NULL, il sistema visualizza il valore originario.
Cos’è SQL IFNULL()?
Lo Structured Query Language dispone di una funzione importante per verificare le espressioni: SQL COALESCE(). Tuttavia, se un’espressione risulta vuota o NULL e desideri visualizzare un valore specifico, puoi usare la funzione SQL IFNULL(). Questa funzione esamina l’espressione in questione e stabilisce come procedere: se l’espressione è NULL, restituisce un valore alternativo precedentemente specificato; in caso contrario, restituisce l’espressione normale. Sebbene la teoria possa apparire un po’ confusa, grazie ad alcuni esempi pratici potrai comprendere facilmente l’utilità di questa funzione.
- Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
- Storage SSD NVMe veloce
- Plesk Web Host Edition incluso
Sintassi e funzionamento
Anzitutto esaminiamo la sintassi di SQL IFNULL(). Il codice si scrive così:
IFNULL(espressione, espressione_alternativa);
sqlLa prima espressione è quella presa in esame. Qualora il primo valore sia pari a NULL, la funzione restituisce un’espressione alternativa.
Esempi di utilizzo della funzione
Per capire come funziona SQL IFNULL() puoi usare questi semplici esempi. Nel primo caso, la funzione riconosce che il valore dell’espressione non è NULL. Questo il relativo codice:
IFNULL('Questa è la prima espressione', 'Questa è un’alternativa');
sqlQuando esegui il codice, l’output sarà il seguente:
Questa è la prima espressione
sqlLa prima espressione presenta un determinato valore e pertanto la funzione non restituisce alcuna alternativa. Il secondo esempio è un po’ diverso:
IFNULL(' ', 'Questa è l’alternativa');
sqlL’output ottenuto con il comando è il seguente:
Questa è l’alternativa
sqlPoiché il valore della prima espressione è NULL, la funzione restituisce l’alternativa specificata.
Naturalmente questo principio funziona anche con valori numerici:
IFNULL(10, 15);
sqlL’output è il seguente:
10
sqlSe il valore non è definito, SQL IFNULL() entra in funzione:
IFNULL(NULL, 15);
sqlL’output è il seguente:
15
sqlUn esempio pratico
Di seguito presentiamo un caso d’uso per SQL IFNULL(). La tabella “Consegne” include colonne relative a cognome, indirizzo di consegna e indirizzo di fatturazione:
Cognome | Indirizzo di consegna | Indirizzo di fatturazione |
---|---|---|
Rossi | Via Marconi 17 | Via Marconi 17 |
Bianchi | Via dei Tigli 6 | Via dei Tigli 548 |
Ferrari | Via Mazzini 32 | NULL |
Costa | Viale dei Cipressi 77 | Via III Novembre 62 |
Russo | Piazza Dante 41 | Piazza Dante 41 |
Un cliente ha digitato l’indirizzo di consegna, ma non quello di fatturazione. Se vuoi che tutte le voci presentino almeno un valore puoi usare SQL IFNULL(). La seguente espressione unita al comando SQL SELECT
si scrive così:
SELECT Cognome, IFNULL(Indirizzo di fatturazione, Indirizzo di consegna) Indirizzo
FROM Consegne;
sqlIn questo modo otteniamo una tabella che contiene almeno un indirizzo per ciascun cliente:
Cognome | Indirizzo di consegna |
---|---|
Rossi | Via Marconi 17 |
Bianchi | Via dei Tigli 6 |
Ferrari | Via Mazzini 32 |
Costa | Viale dei Cipressi 77 |
Russo | Piazza Dante 41 |
Alternative a SQL IFNULL()
Oltre alla funzione COALESCE()
, che abbiamo già menzionato, esistono diverse alternative a SQL IFNULL(). Anche SQL NVL() converte un valore NULL in un altro valore a scelta. Anche SQL ISNULL() verifica se si tratta di un valore NULL e, in caso affermativo, lo sostituisce con un valore definito.
Il database perfetto per le tue esigenze: grazie all’hosting SQL server di IONOS scegli fra MSSQL, MySQL o MariaDB e approfitti di ottime prestazioni e di numerose funzionalità di sicurezza.