La funzione SQL ISNULL(): verificare e sostituire valori NULL

ISNULL() in SQL si usa per controllare se un’espressione presenta il valore NULL. In caso affermativo, la funzione sostituisce NULL con un valore alternativo dello stesso tipo di dati.

Cos’è ISNULL() in SQL?

Grazie allo Structured Query Language è possibile creare tabelle e popolarle con valori. Se a un determinato 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 alternativo puoi utilizzare la funzione SQL ISNULL(). Questa funzione verifica innanzitutto se un’espressione è NULL e, in caso affermativo, inserisce un’espressione sostitutiva precedentemente specificata. In caso contrario, il campo conserva il valore originale.

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

La sintassi della funzione

Il funzionamento 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’espressione presa in esame è NULL. In caso affermativo restituisce il valore alternativo. In caso contrario, invece, ISNULL() in SQL restituisce l’espressione stessa. Importante: sia l’espressione che il valore alternativo devono appartenere allo stesso tipo di dati.

Funzionamento di ISNULL() in SQL

ISNULL() in SQL si applica in concomitanza con un comando SQL come SELECT. Negli esempi successivi mostriamo prima l’output quando il valore dell’espressione è pari a NULL e successivamente l’opzione alternativa. 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 espressione. Riconoscendo che l’espressione esaminata ha un valore, il comando restituisce semplicemente 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 desideriamo strutturare meglio la nostra tabella possiamo usare la funzione ISNULL() in SQL, in modo da sostituire il valore NULL con il segnaposto 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

Combinazione con funzioni aggregate

ISNULL() in SQL funziona anche in combinazione con funzioni aggregate quali SQL AVG(), SQL COUNT() o SUM(). Puoi comprendere meglio il loro funzionamento nel prossimo esempio: qui ampliamo la tabella precedente aggiungendo 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 desideriamo sostituire il valore NULL con 100 e calcolare l’intero valore di tutti gli ordini, usiamo la funzione SUM(). In questo caso il codice da utilizzare sarà il seguente:

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

Si ottiene quindi il seguente output:

500
sql

Il sistema sostituisce il valore NULL con 100 e quindi somma 300 + 100 + 100.

Alternative a ISNULL() in SQL

Ci sono altre opzioni simili a ISNULL() in SQL che appartengono alle cosiddette funzioni NULL. Di questo gruppo fanno parte SQL COALESCE(), SQL IFNULL() e SQL NVL(). Anche queste funzioni verificano se un valore è pari a NULL ed eventualmente lo sostituiscono con un valore alternativo.

Consiglio

Trova il server più adatto alle tue esigenze! Grazie all’hosting SQL server di IONOS non scegli solo il database che più preferisci fra MSSQL, MySQL e MariaDB, ma approfitti anche di una consulenza specializzata, sicurezza elevata e una performance senza pari.

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