La funzione SQL NVL per sostituire i valori NULL

SQL NVL sta per “Null Value”, ossia valore nullo, e serve a sostituire i valori NULL in record di dati e database con altri valori non nulli. In questo modo puoi ridurre le dimensioni dei database, migliorare la leggibilità di analisi e rapporti, oltre che ottimizzare le prestazioni delle tue query di ricerca.

Che cos’è la funzione SQL NVL?

Gli amministratori e le amministratrici che lavorano regolarmente con i database e che necessitano di record di dati completi per le analisi conoscono il problema posto dai valori NULL. La mancanza di informazioni e le lacune possono causare risultati distorti, rapporti inutilizzabili e imprecisioni. La soluzione del problema si chiama SQL NVL. Il nome della funzione sta per “Null-Value Logic” ed è uno strumento per aiutarti a sostituire colonne e campi vuoti con altri valori o sequenze di caratteri significativi e definiti dall’utente. Questa funzione permette di migliorare la qualità e la fruibilità dei tuoi record di dati e quindi anche l’efficienza e le prestazioni dei database.

Il funzionamento di SQL NVL

Il principio di funzionamento di NVL è semplice: con SQL NVL definisci il valore che deve sostituire i valori NULL nei tuoi risultati. La funzione controlla i record di dati selezionati alla ricerca di valori veri o falsi e sostituisce automaticamente i valori NULL trovati con le informazioni desiderate. 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.

Attenzione: SQL NVL è utilizzata prevalentemente in database ORACLE. In MySQL o in SQL Server la funzione NVL è stata sostituita dalla funzione ISNULL. Se invece vuoi sostituire i valori NULL in database SQL Server e MS ACCESS, utilizza la funzione ISNULL. In MySQL utilizza invece la funzione IFNULL o COALESCE. Il funzionamento è comunque lo stesso.

Consiglio

Impara le nozioni principali e le possibili applicazioni di un linguaggio di programmazione e per database ampiamente diffuso come SQL. La nostra introduzione a SQL mediante esempi ti sarà utile per entrare nel mondo di SQL.

Differenze fra NVL, ISNULL e IFNULL

A seconda del tipo di database può essere facile fare confusione fra NVL, ISNULL e IFNULL. Queste tre funzioni sono molto simili, ma non sono disponibili in tutti i database e in tutti i sistemi di gestione di base di dati. La nostra panoramica ti aiuterà a scegliere la funzione giusta per sostituire i valori NULL.

Spiegazione 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 sostituire i valori NULL.
  • Valore2: indica il valore con cui vuoi sostituire i valori NULL nei risultati. Qui puoi inserire informazioni significative come “Dato non disponibile”, “0” oppure “Sconosciuto” 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 utilizzate in combinazione con SQL SELECT e FROM, che ti permettono di definire i record di dati da controllare.

Differenze fra SQL NVL, ISNULL e IFNULL

Queste funzioni per la gestione dei valori NULL sono molto simili e si differenziano per le seguenti caratteristiche:

Funzione SQL Gestione dei valori NULL Compatibilità
SQL NVL Sostituisce i valori NULL trovati con un valore desiderato Oracle, Db2
SQL ISNULL Sostituisce valori NULL o stringhe vuote con il valore desiderato SQL Server, MySQL, MS ACCESS
SQL IFNULL Sostituisce valori NULL con il valore desiderato e non interpreta lo spazio vuoto come valore NULL MySQL, Google BigQuery

Possibilità di applicazione di NVL

La sostituzione di valori NULL è utile per le applicazioni più svariate. Alcune di queste sono:

  • Sostituzione di dati mancanti dei clienti o di indirizzi di consegna con valori leggibili come “sconosciuto”
  • Sostituzione di saldi dei conti sconosciuti o transazioni non note con il valore numerico 0
  • Sostituzione di valori vuoti per dati dei pazienti, dati finanziari o dati di produzione con valori standard e valori medi
  • Sostituzione di valutazioni mancanti o feedback assenti con “Dato non disponibile”
  • Sostituzione di immagini o informazioni mancanti con “Immagine mancante” o “Informazioni non disponibili”
Consiglio

Cerchi un sistema di gestione dei dati efficiente, dalle prestazioni affidabili, con efficienza scalabile e sicuro in caso di anomalie? Allora utilizza l’hosting SQL server di IONOS con soluzioni personalizzate per server e hosting, conformi alle normative europee sulla protezione dei dati.

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

Esempi pratici per l’operatore SQL NVL

Per descrivere meglio l’uso di NVL, ISNULL e IFNULL, nelle parti seguenti trovi un esempio pratico di applicazione di ciascuna funzione, basato su una tabella clienti con colonne per indirizzo, età e ID cliente. In questi esempi vogliamo sostituire gli eventuali valori NULL nella colonna “Indirizzo” con il valore “Dato non disponibile”.

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

Alternative a SQL NVL

Le funzioni NVL, ISNULL e IFNULL sono praticamente identiche: devi solo controllare che la funzione sia disponibile per il database che stai utilizzando. Un’ulteriore alternativa quasi identica tra i comandi SQL, gli operatori SQL e le funzioni è SQL COALESCE. COALESCE è disponibile in quasi tutte le applicazioni di database e permette di cambiare i valori NULL trovati con un valore sostitutivo.

Anche la sua sintassi è quasi identica alle altre:

COALESCE(Valore1, Valore2)
sql
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