

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à.

# NVL2 funzione
<a name="NVL2"></a>

Restituisce uno dei due valori in base al fatto che un'espressione specificata valuti in NULL o NOT NULL.

## Sintassi
<a name="NVL2-synopsis"></a>

```
NVL2 ( expression, not_null_return_value, null_return_value )
```

## Argomenti
<a name="NVL2-arguments"></a>

 *espressione*   
Un'espressione, come ad esempio un nome di colonna, da valutare per lo stato null.

 *not\$1null\$1return\$1value*   
Il valore restituito se l' *espressione* valuta in NOT NULL. Il valore *not\$1null\$1return\$1value* deve avere lo stesso tipo di dati dell' *espressione* o essere implicitamente convertibile in quel tipo di dati.

 *null\$1return\$1value*   
Il valore restituito se l' *espressione* valuta in NULL. Il valore *null\$1return\$1value* deve avere lo stesso tipo di dati dell' *espressione* o essere implicitamente convertibile in quel tipo di dati.

## Tipo restituito
<a name="NVL2-return-type"></a>

Il tipo di NVL2 restituzione è determinato come segue:
+ Se *not\$1null\$1return\$1value* o *null\$1return\$1value* è null, viene restituito il tipo di dati dell'espressione not null.

Se sia *not\$1null\$1return\$1value* sia *null\$1return\$1value* sono non null:
+ Se sia *not\$1null\$1return\$1value* sia *null\$1return\$1value* hanno lo stesso tipo di dati, viene restituito quel tipo di dati.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* hanno tipi di dati numerici diversi, viene restituito il tipo di dati numerico compatibile più piccolo.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* hanno tipi di dati di datetime diversi, viene restituito un tipo di dati numerici di timestamp.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* hanno diversi tipi di dati di carattere, viene restituito il tipo di dati di *not\$1null\$1return\$1value*.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* hanno tipi di dati numerici e non numerici misti viene restituito il tipo di dati di *not\$1null\$1return\$1value*.

**Importante**  
Negli ultimi due casi in cui viene restituito il tipo di dati di *not\$1null\$1return\$1value*, *null\$1return\$1value* 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
<a name="nvl2-usage-notes"></a>

*Infatti NVL2, il valore restituito avrà il valore del parametro *not\$1null\$1return\$1value o null\$1return\$1value*, a seconda di quale sia selezionato dalla funzione, ma avrà il tipo di dati *not\$1null\$1return\$1value*.*

Ad esempio, supponendo che la colonna 1 sia NULL, le seguenti query restituiranno lo stesso valore. Tuttavia, il tipo di dati del valore restituito NVL2 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
<a name="NVL2-examples"></a>

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	(555) 555-0100
Caldwell Acevedo 	Nunc.sollicitudin@example.ca
Quinn Adams		   vel@example.com
Kamal Aguilar		 quis@example.com
Samson Alexander	 hendrerit.neque@example.com
Hall Alford		   ac.mattis@example.com
Lane Allen		    et.netus@example.com
Xander Allison	   ac.facilisis.facilisis@example.com
Amaya Alvarado	   dui.nec.tempus@example.com
Vera Alvarez		  at.arcu.Vestibulum@example.com
Yetta Anthony		 enim.sit@example.com
Violet Arnold		 ad.litora@example.comm
August Ashley		 consectetuer.euismod@example.com
Karyn Austin		  ipsum.primis.in@example.com
Lucas Ayers		   at@example.com
```