La funzione SQL IFNULL() si usa per ve­ri­fi­ca­re il valore di un’espres­sio­ne. Se l’espres­sio­ne re­sti­tui­sce NULL, la funzione in­ter­vie­ne so­sti­tuen­do tale valore con un valore al­ter­na­ti­vo. Se invece il valore non è NULL, il sistema vi­sua­liz­za il valore ori­gi­na­rio.

Cos’è SQL IFNULL()?

Lo Struc­tu­red Query Language dispone di una funzione im­por­tan­te per ve­ri­fi­ca­re le espres­sio­ni: SQL COALESCE(). Tuttavia, se un’espres­sio­ne risulta vuota o NULL e desideri vi­sua­liz­za­re un valore specifico, puoi usare la funzione SQL IFNULL(). Questa funzione esamina l’espres­sio­ne in questione e sta­bi­li­sce come procedere: se l’espres­sio­ne è NULL, re­sti­tui­sce un valore al­ter­na­ti­vo pre­ce­den­te­men­te spe­ci­fi­ca­to; in caso contrario, re­sti­tui­sce l’espres­sio­ne normale. Sebbene la teoria possa apparire un po’ confusa, grazie ad alcuni esempi pratici potrai com­pren­de­re fa­cil­men­te l’utilità di questa funzione.

Server virtuali (VPS)
Affidati ai VPS e server di IONOS, il tuo partner digitale cer­ti­fi­ca­to ISO
  • 1 Gbps di larghezza di banda e traffico il­li­mi­ta­to
  • Di­spo­ni­bi­li­tà del 99,99% e cer­ti­fi­ca­zio­ne ISO
  • As­si­sten­za 24/7 e con­su­len­te personale

Sintassi e fun­zio­na­men­to

Anzitutto esa­mi­nia­mo la sintassi di SQL IFNULL(). Il codice si scrive così:

IFNULL(espressione, espressione_alternativa);
sql

La prima espres­sio­ne è quella presa in esame. Qualora il primo valore sia pari a NULL, la funzione re­sti­tui­sce un’espres­sio­ne al­ter­na­ti­va.

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’espres­sio­ne 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 espres­sio­ne presenta un de­ter­mi­na­to valore e pertanto la funzione non re­sti­tui­sce alcuna al­ter­na­ti­va. 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 espres­sio­ne è NULL, la funzione re­sti­tui­sce l’al­ter­na­ti­va spe­ci­fi­ca­ta.

Na­tu­ral­men­te 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 pre­sen­tia­mo un caso d’uso per SQL IFNULL(). La tabella “Consegne” include colonne relative a cognome, indirizzo di consegna e indirizzo di fat­tu­ra­zio­ne:

Cognome Indirizzo di consegna Indirizzo di fat­tu­ra­zio­ne
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 fat­tu­ra­zio­ne. Se vuoi che tutte le voci pre­sen­ti­no almeno un valore puoi usare SQL IFNULL(). La seguente espres­sio­ne 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

Al­ter­na­ti­ve a SQL IFNULL()

Oltre alla funzione COALESCE(), che abbiamo già men­zio­na­to, esistono diverse al­ter­na­ti­ve 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 af­fer­ma­ti­vo, lo so­sti­tui­sce 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 ap­pro­fit­ti di ottime pre­sta­zio­ni e di numerose fun­zio­na­li­tà di sicurezza.

Vai al menu prin­ci­pa­le