ISNULL() in SQL si usa per con­trol­la­re se un’espres­sio­ne presenta il valore NULL. In caso af­fer­ma­ti­vo, la funzione so­sti­tui­sce NULL con un valore al­ter­na­ti­vo dello stesso tipo di dati.

Cos’è ISNULL() in SQL?

Grazie allo Struc­tu­red Query Language è possibile creare tabelle e popolarle con valori. Se a un de­ter­mi­na­to campo di una tabella non assegni alcun valore, questo rimane vuoto e assume il valore NULL, il che indica l’assenza di un valore effettivo. Se desideri che al posto di NULL venga inserito un valore al­ter­na­ti­vo puoi uti­liz­za­re la funzione SQL ISNULL(). Questa funzione verifica in­nan­zi­tut­to se un’espres­sio­ne è NULL e, in caso af­fer­ma­ti­vo, inserisce un’espres­sio­ne so­sti­tu­ti­va pre­ce­den­te­men­te spe­ci­fi­ca­ta. In caso contrario, il campo conserva il valore originale.

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

La sintassi della funzione

Il fun­zio­na­men­to di ISNULL() in SQL risulta evidente dando un’occhiata più da vicino alla sintassi della funzione:

ISNULL(espressione, valore_alternativo);
sql

Prima di tutto la funzione verifica se il valore dell’espres­sio­ne presa in esame è NULL. In caso af­fer­ma­ti­vo re­sti­tui­sce il valore al­ter­na­ti­vo. In caso contrario, invece, ISNULL() in SQL re­sti­tui­sce l’espres­sio­ne stessa. Im­por­tan­te: sia l’espres­sio­ne che il valore al­ter­na­ti­vo devono ap­par­te­ne­re allo stesso tipo di dati.

Fun­zio­na­men­to di ISNULL() in SQL

ISNULL() in SQL si applica in con­co­mi­tan­za con un comando SQL come SELECT. Negli esempi suc­ces­si­vi mostriamo prima l’output quando il valore dell’espres­sio­ne è pari a NULL e suc­ces­si­va­men­te l’opzione al­ter­na­ti­va. Il primo codice si presenta così:

SELECT ISNULL(' ', 'Questo è il valore alternativo');
sql

L’output in questo caso è:

Questo è il valore alternativo
sql

Nel prossimo esempio usiamo la stessa espres­sio­ne. Ri­co­no­scen­do che l’espres­sio­ne esaminata ha un valore, il comando re­sti­tui­sce sem­pli­ce­men­te quel valore.

SELECT ISNULL('Questa è l’espressione originaria', 'Questo è il valore alternativo');
sql

In questo modo si ottiene il seguente output:

Questa è l’espressione originaria
sql

Esempio pratico

Per il prossimo esempio creiamo una semplice tabella “ordini”. Questa contiene le colonne “numero_cliente”, “cognome” e “numero_dell’ordine”:

Numero_cliente Cognome Numero_dell’ordine
1326 Rossi 00451
1288 Bianchi
1262 Rossi 00318

Se de­si­de­ria­mo strut­tu­ra­re meglio la nostra tabella possiamo usare la funzione ISNULL() in SQL, in modo da so­sti­tui­re il valore NULL con il se­gna­po­sto 00000. In questo caso il codice si scrive così:

SELECT Numero_cliente,
ISNULL(Numero_dell’ordine, 00000), Numero_dell’ordine
FROM Ordini;
sql

Eseguendo il codice otteniamo la seguente tabella:

Numero_cliente Cognome Numero_dell’ordine
1326 Rossi 00451
1288 Bianchi 00000
1262 Rossi 00318

Com­bi­na­zio­ne con funzioni aggregate

ISNULL() in SQL funziona anche in com­bi­na­zio­ne con funzioni aggregate quali SQL AVG(), SQL COUNT() o SUM(). Puoi com­pren­de­re meglio il loro fun­zio­na­men­to nel prossimo esempio: qui ampliamo la tabella pre­ce­den­te ag­giun­gen­do una colonna chiamata “valore_dell’ordine”, con importi in euro. Di seguito trovi la tabella in questione:

Numero_cliente Cognome Numero_dell’ordine Valore_dell’ordine
1326 Rossi 00451 300
1288 Bianchi 00000 NULL
1262 Rossi 00318 100

Se de­si­de­ria­mo so­sti­tui­re il valore NULL con 100 e calcolare l’intero valore di tutti gli ordini, usiamo la funzione SUM(). In questo caso il codice da uti­liz­za­re sarà il seguente:

SELECT SUM(ISNULL(Valore_dell’ordine, 100)
FROM Ordini;
sql

Si ottiene quindi il seguente output:

500
sql

Il sistema so­sti­tui­sce il valore NULL con 100 e quindi somma 300 + 100 + 100.

Al­ter­na­ti­ve a ISNULL() in SQL

Ci sono altre opzioni simili a ISNULL() in SQL che ap­par­ten­go­no alle co­sid­det­te funzioni NULL. Di questo gruppo fanno parte SQL COALESCE(), SQL IFNULL() e SQL NVL(). Anche queste funzioni ve­ri­fi­ca­no se un valore è pari a NULL ed even­tual­men­te lo so­sti­tui­sco­no con un valore al­ter­na­ti­vo.

Consiglio

Trova il server più adatto alle tue esigenze! Grazie all’hosting SQL server di IONOS non scegli solo il database che più pre­fe­ri­sci fra MSSQL, MySQL e MariaDB, ma ap­pro­fit­ti anche di una con­su­len­za spe­cia­liz­za­ta, sicurezza elevata e una per­for­man­ce senza pari.

Vai al menu prin­ci­pa­le