Funzione Oracle NVL

Funzione Oracle NVL

Un valore null è un campo che è stato lasciato vuoto o non ha un valore assegnato.

I valori null sono comuni nei database, specialmente quando si importano dati esterni. Pertanto, a meno che una colonna non contenga un vincolo per prevenire i valori nulli, il motore del database utilizzerà probabilmente un valore null per un valore mancante.

Sebbene i valori null siano comuni, possono portare a problemi di database poiché il database non ha alcun valore con cui lavorare. È quindi una buona pratica applicare azioni per gestire i valori nulli nelle tue query.

In questo post, impareremo come convertire i valori nulli in una determinata tabella per contenere un valore predefinito che ha meno probabilità di causare errori di funzionamento nel database.

Funzione Oracle NVL

Come accennato, questa funzione ci consente di sostituire i valori nulli con valori più significativi. La sintassi della funzione è fornita di seguito:

Nvl (expr1, expr2);

La funzione accetta due argomenti principali:

expr1 ed expr2 - Questo parametro definisce il valore da testare per i valori null. Se il valore di EXPR1 è nullo, la funzione restituirà il valore di EXPR2.

Entrambe le espressioni possono avere tipi di dati simili o diversi. Se i tipi di dati corrispondenti differiscono, il motore del database può eseguire una conversione implicita per consentire la compatibilità con i tipi di dati. Se è impossibile convertire i tipi di dati corrispondenti, il motore del database lancerà un errore.

Oracle Nvl () Esempio di funzionalità Utilizzo

Il seguente esempio dimostra l'uso di base della funzione Nvl ():

Esempio 1

Considera il seguente esempio:

Seleziona nvl ('hello', 'world') da Dual;

Nell'esempio precedente, utilizziamo la funzione nvl () per verificare se la stringa "ciao" è un valore nullo. Poiché il valore fornito non è nullo, la funzione restituirà la stringa "ciao".

Esempio 2

Considera il secondo esempio mostrato di seguito:

Seleziona nvl (null, 'mondo') da Dual;

In questo caso, poiché la prima espressione è un valore nullo, la query restituirà la seconda stringa come mostrato di seguito:

Esempio 3

Possiamo anche utilizzare la funzione nvl () per sostituire i valori null in una tabella del database. Considera la tabella dei dipendenti mostrata di seguito:

Seleziona First_name, last_name, e -mail, stipendio, commission_pct da dipendenti EMP;

Tabella risultante:

Come possiamo vedere, la colonna Commission_PCT contiene valori null. Possiamo creare una query per sostituire i valori null dalla colonna Commission_PCT con 0, come mostrato nell'esempio seguente:

Seleziona First_name, last_name, e -mail, stipendio, nvl (Commission_PCT, 0)
dai dipendenti EMP;

Nell'esempio precedente query, utilizziamo la funzione nvl () per testare il valore nella colonna Commission_PCT per NULLS. Se c'è un valore nullo, restituiamo 0. Altrimenti, restituiamo il valore originale.

Questo dovrebbe consentirci di sostituire i valori null nella colonna con 0, come mostrato nella tabella risultante seguente:

Possiamo usarlo con un'istruzione di aggiornamento o archiviare il valore risultante in una vista tabella.

Conclusione

In questo tutorial, hai imparato come utilizzare la funzione Oracle Nvl () per sostituire i valori null con i valori predefiniti. È bene tenere presente che sebbene la funzione nvl () assomigli a stretto la funzione coalesce (), la funzione nvl () può restituire solo un singolo valore. Allo stesso tempo, la funzione Coalesce () può restituire più valori.

Se stai cercando una funzione che possa assumere più di due argomenti senza usare la funzione Coalesce (), considera la funzione Nvl2 ().