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.

Server virtuali (VPS)
Virtualizzazione totale con accesso root completo
  • 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);
sql

La 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');
sql

Quando esegui il codice, l’output sarà il seguente:

Questa è la prima espressione
sql

La prima espressione presenta un determinato valore e pertanto la funzione non restituisce alcuna alternativa. Il secondo esempio è un po’ diverso:

IFNULL(' ', 'Questa è l’alternativa');
sql

L’output ottenuto con il comando è il seguente:

Questa è l’alternativa
sql

Poiché il valore della prima espressione è NULL, la funzione restituisce l’alternativa specificata.

Naturalmente questo principio funziona anche con valori numerici:

IFNULL(10, 15);
sql

L’output è il seguente:

10
sql

Se il valore non è definito, SQL IFNULL() entra in funzione:

IFNULL(NULL, 15);
sql

L’output è il seguente:

15
sql

Un 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;
sql

In 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.

Consiglio

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.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top