Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Restituisce uno dei due valori in base al fatto che un'espressione specificata valuti in NULL o NOT NULL.
Sintassi
NVL2 ( expression, not_null_return_value, null_return_value )
Argomenti
- espressione
-
Un'espressione, come ad esempio un nome di colonna, da valutare per lo stato null.
- not_null_return_value
-
Il valore restituito se l' espressione valuta in NOT NULL. Il valore not_null_return_value deve avere lo stesso tipo di dati dell' espressione o essere implicitamente convertibile in quel tipo di dati.
- null_return_value
-
Il valore restituito se l' espressione valuta in NULL. Il valore null_return_value deve avere lo stesso tipo di dati dell' espressione o essere implicitamente convertibile in quel tipo di dati.
Tipo restituito
Il tipo di NVL2 restituzione è determinato come segue:
-
Se not_null_return_value o null_return_value è null, viene restituito il tipo di dati dell'espressione not null.
Se sia not_null_return_value sia null_return_value sono non null:
-
Se sia not_null_return_value sia null_return_value hanno lo stesso tipo di dati, viene restituito quel tipo di dati.
-
Se not_null_return_value e null_return_value hanno tipi di dati numerici diversi, viene restituito il tipo di dati numerico compatibile più piccolo.
-
Se not_null_return_value e null_return_value hanno tipi di dati di datetime diversi, viene restituito un tipo di dati numerici di timestamp.
-
Se not_null_return_value e null_return_value hanno diversi tipi di dati di carattere, viene restituito il tipo di dati di not_null_return_value.
-
Se not_null_return_value e null_return_value hanno tipi di dati numerici e non numerici misti viene restituito il tipo di dati di not_null_return_value.
Importante
Negli ultimi due casi in cui viene restituito il tipo di dati di not_null_return_value, null_return_value viene assegnato implicitamente a quel tipo di dati. Se i tipi di dati non sono compatibili, la funzione ha esito negativo.
Note per l'utilizzo
Funzione DECODEpuò essere usato in modo simile a NVL2 quando l'espressione e i parametri di ricerca sono entrambi nulli. La differenza è che per DECODE, la restituzione avrà sia il valore sia il tipo di dati del parametro risultato. Al contrario, for NVL2, il valore restituito avrà il valore del parametro not_null_return_value o null_return_value, a seconda di quale sia selezionato dalla funzione, ma avrà il tipo di dati not_null_return_value.
Ad esempio, supponendo che la colonna 1 sia NULL, le seguenti query restituiranno lo stesso valore. Tuttavia, il tipo di dati NVL2 del valore restituito DECODE sarà INTEGER e il tipo di dati del valore restituito sarà VARCHAR.
select decode(column1, null, 1234, '2345');
select nvl2(column1, '2345', 1234);
Esempio
L'esempio seguente modifica alcuni dati di esempio, quindi valuta due campi per fornire informazioni di contatto appropriate per gli utenti:
update users set email = null where firstname = 'Aphrodite' and lastname = 'Acevedo';
select (firstname + ' ' + lastname) as name,
nvl2(email, email, phone) AS contact_info
from users
where state = 'WA'
and lastname like 'A%'
order by lastname, firstname;
name contact_info
--------------------+-------------------------------------------
Aphrodite Acevedo (906) 632-4407
Caldwell Acevedo Nunc.sollicitudin@Duisac.ca
Quinn Adams vel@adipiscingligulaAenean.com
Kamal Aguilar quis@vulputaterisusa.com
Samson Alexander hendrerit.neque@indolorFusce.ca
Hall Alford ac.mattis@vitaediamProin.edu
Lane Allen et.netus@risusDonec.org
Xander Allison ac.facilisis.facilisis@Infaucibus.com
Amaya Alvarado dui.nec.tempus@eudui.edu
Vera Alvarez at.arcu.Vestibulum@pellentesque.edu
Yetta Anthony enim.sit@risus.org
Violet Arnold ad.litora@at.com
August Ashley consectetuer.euismod@Phasellus.com
Karyn Austin ipsum.primis.in@Maurisblanditenim.org
Lucas Ayers at@elitpretiumet.com