SQL NVL sta per “Null Value”, ossia valore nullo, e serve a so­sti­tui­re i valori NULL in record di dati e database con altri valori non nulli. In questo modo puoi ridurre le di­men­sio­ni dei database, mi­glio­ra­re la leg­gi­bi­li­tà di analisi e rapporti, oltre che ot­ti­miz­za­re le pre­sta­zio­ni delle tue query di ricerca.

Che cos’è la funzione SQL NVL?

Gli am­mi­ni­stra­to­ri e le am­mi­ni­stra­tri­ci che lavorano re­go­lar­men­te con i database e che ne­ces­si­ta­no di record di dati completi per le analisi conoscono il problema posto dai valori NULL. La mancanza di in­for­ma­zio­ni e le lacune possono causare risultati distorti, rapporti inu­ti­liz­za­bi­li e im­pre­ci­sio­ni. La soluzione del problema si chiama SQL NVL. Il nome della funzione sta per “Null-Value Logic” ed è uno strumento per aiutarti a so­sti­tui­re colonne e campi vuoti con altri valori o sequenze di caratteri si­gni­fi­ca­ti­vi e definiti dall’utente. Questa funzione permette di mi­glio­ra­re la qualità e la frui­bi­li­tà dei tuoi record di dati e quindi anche l’ef­fi­cien­za e le pre­sta­zio­ni dei database.

Il fun­zio­na­men­to di SQL NVL

Il principio di fun­zio­na­men­to di NVL è semplice: con SQL NVL definisci il valore che deve so­sti­tui­re i valori NULL nei tuoi risultati. La funzione controlla i record di dati se­le­zio­na­ti alla ricerca di valori veri o falsi e so­sti­tui­sce au­to­ma­ti­ca­men­te i valori NULL trovati con le in­for­ma­zio­ni de­si­de­ra­te. I valori NULL sono di norma dati mancanti in righe e colonne. Non devono quindi essere confusi con un valore “0” numerico o con spazi vuoti.

At­ten­zio­ne: SQL NVL è uti­liz­za­ta pre­va­len­te­men­te in database ORACLE. In MySQL o in SQL Server la funzione NVL è stata so­sti­tui­ta dalla funzione ISNULL. Se invece vuoi so­sti­tui­re i valori NULL in database SQL Server e MS ACCESS, utilizza la funzione ISNULL. In MySQL utilizza invece la funzione IFNULL o COALESCE. Il fun­zio­na­men­to è comunque lo stesso.

Consiglio

Impara le nozioni prin­ci­pa­li e le possibili ap­pli­ca­zio­ni di un lin­guag­gio di pro­gram­ma­zio­ne e per database am­pia­men­te diffuso come SQL. La nostra in­tro­du­zio­ne a SQL mediante esempi ti sarà utile per entrare nel mondo di SQL.

Dif­fe­ren­ze fra NVL, ISNULL e IFNULL

A seconda del tipo di database può essere facile fare con­fu­sio­ne fra NVL, ISNULL e IFNULL. Queste tre funzioni sono molto simili, ma non sono di­spo­ni­bi­li in tutti i database e in tutti i sistemi di gestione di base di dati. La nostra pa­no­ra­mi­ca ti aiuterà a scegliere la funzione giusta per so­sti­tui­re i valori NULL.

Spie­ga­zio­ne di sintassi e parametri

Ciascuna delle funzioni SQL NVL, ISNULL e IFNULL richiede due parametri che definiamo qui come “Valore1” e “Valore2”:

  • Valore1: definisce il record di dati o la colonna in cui vuoi trovare e so­sti­tui­re i valori NULL.
  • Valore2: indica il valore con cui vuoi so­sti­tui­re i valori NULL nei risultati. Qui puoi inserire in­for­ma­zio­ni si­gni­fi­ca­ti­ve come “Dato non di­spo­ni­bi­le”, “0” oppure “Sco­no­sciu­to” per eliminare le lacune e gli spazi vuoti.

Nelle parti seguenti trovi la sintassi per ciascuna delle tre funzioni.

NVL:

NVL(Valore1, Valore2)
sql

ISNULL:

ISNULL(Valore1, Valore2)
sql

IFNULL:

IFNULL(Valore1, Valore2)
sql

Di solito queste funzioni sono uti­liz­za­te in com­bi­na­zio­ne con SQL SELECT e FROM, che ti per­met­to­no di definire i record di dati da con­trol­la­re.

Dif­fe­ren­ze fra SQL NVL, ISNULL e IFNULL

Queste funzioni per la gestione dei valori NULL sono molto simili e si dif­fe­ren­zia­no per le seguenti ca­rat­te­ri­sti­che:

Funzione SQL Gestione dei valori NULL Com­pa­ti­bi­li­tà
SQL NVL So­sti­tui­sce i valori NULL trovati con un valore de­si­de­ra­to Oracle, Db2
SQL ISNULL So­sti­tui­sce valori NULL o stringhe vuote con il valore de­si­de­ra­to SQL Server, MySQL, MS ACCESS
SQL IFNULL So­sti­tui­sce valori NULL con il valore de­si­de­ra­to e non in­ter­pre­ta lo spazio vuoto come valore NULL MySQL, Google BigQuery

Pos­si­bi­li­tà di ap­pli­ca­zio­ne di NVL

La so­sti­tu­zio­ne di valori NULL è utile per le ap­pli­ca­zio­ni più svariate. Alcune di queste sono:

  • So­sti­tu­zio­ne di dati mancanti dei clienti o di indirizzi di consegna con valori leggibili come “sco­no­sciu­to”
  • So­sti­tu­zio­ne di saldi dei conti sco­no­sciu­ti o tran­sa­zio­ni non note con il valore numerico 0
  • So­sti­tu­zio­ne di valori vuoti per dati dei pazienti, dati fi­nan­zia­ri o dati di pro­du­zio­ne con valori standard e valori medi
  • So­sti­tu­zio­ne di va­lu­ta­zio­ni mancanti o feedback assenti con “Dato non di­spo­ni­bi­le”
  • So­sti­tu­zio­ne di immagini o in­for­ma­zio­ni mancanti con “Immagine mancante” o “In­for­ma­zio­ni non di­spo­ni­bi­li”
Consiglio

Cerchi un sistema di gestione dei dati ef­fi­cien­te, dalle pre­sta­zio­ni af­fi­da­bi­li, con ef­fi­cien­za scalabile e sicuro in caso di anomalie? Allora utilizza l’hosting SQL server di IONOS con soluzioni per­so­na­liz­za­te per server e hosting, conformi alle normative europee sulla pro­te­zio­ne dei dati.

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

Esempi pratici per l’operatore SQL NVL

Per de­scri­ve­re meglio l’uso di NVL, ISNULL e IFNULL, nelle parti seguenti trovi un esempio pratico di ap­pli­ca­zio­ne di ciascuna funzione, basato su una tabella clienti con colonne per indirizzo, età e ID cliente. In questi esempi vogliamo so­sti­tui­re gli eventuali valori NULL nella colonna “Indirizzo” con il valore “Dato non di­spo­ni­bi­le”.

Esempio per SQL NVL

SELECT  Indirizzo, Età, IDcliente, NVL(Indirizzo, 'Dato non disponibile')
FROM  clienti
sql

Esempio per SQL ISNULL

SELECT  Indirizzo, Età, IDcliente, ISNULL(Indirizzo,  'Dato non disponibile')
FROM  clienti
sql

Esempio per SQL IFNULL

SELECT  Indirizzo, Età, IDcliente, IFNULL(Indirizzo,  'Dato non disponibile')
FROM  clienti
sql

Al­ter­na­ti­ve a SQL NVL

Le funzioni NVL, ISNULL e IFNULL sono pra­ti­ca­men­te identiche: devi solo con­trol­la­re che la funzione sia di­spo­ni­bi­le per il database che stai uti­liz­zan­do. Un’ulteriore al­ter­na­ti­va quasi identica tra i comandi SQL, gli operatori SQL e le funzioni è SQL COALESCE. COALESCE è di­spo­ni­bi­le in quasi tutte le ap­pli­ca­zio­ni di database e permette di cambiare i valori NULL trovati con un valore so­sti­tu­ti­vo.

Anche la sua sintassi è quasi identica alle altre:

COALESCE(Valore1, Valore2)
sql
Vai al menu prin­ci­pa­le