

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# NVL2 função
<a name="NVL2"></a>

Retorna um de dois valores, dependendo se uma expressão especificada avalia para NULL ou NOT NULL.

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

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

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

 *expressão*   
Uma expressão, tal como um nome de coluna, a ser avaliada quanto ao status nulo.

 *not\$1null\$1return\$1value*   
O valor retornado se a *expressão* avaliar para NOT NULL. O valor *not\$1null\$1return\$1value* deve ter o mesmo tipo de dados que a *expressão* ou ser implicitamente conversível para esse tipo de dados.

 *null\$1return\$1value*   
O valor retornado se a *expressão* avaliar para NULL. O valor *null\$1return\$1value* deve ter o mesmo tipo de dados que a *expressão* ou ser implicitamente conversível para esse tipo de dados.

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

O tipo de NVL2 retorno é determinado da seguinte forma:
+ Se *not\$1null\$1return\$1value* ou *null\$1return\$1value* for nulo, o tipo de dados da expressão não nula será retornado.

Se *not\$1null\$1return\$1value* e *null\$1return\$1value* não forem nulos:
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* tiverem o mesmo tipo de dados, esse tipo de dados será retornado.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* tiverem diferentes tipos de dados numéricos, o menor tipo de dados numérico compatível será retornado.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* tiverem diferentes tipos de dados datetime, um tipo de dados de timestamp será retornado.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* tiverem diferentes tipos de dados de caracteres, o tipo de dados de *not\$1null\$1return\$1value* será retornado.
+ Se *not\$1null\$1return\$1value* e *null\$1return\$1value* tiverem tipos de dados numéricos e não numéricos variados, o tipo de dados de *not\$1null\$1return\$1value* será retornado.

**Importante**  
Nos últimos dois casos onde o tipo de dados de *not\$1null\$1return\$1value* é retornado, *o null\$1return\$1value* é convertido implicitamente para esse tipo de dados. Se os tipos de dados forem incompatíveis, a função falhará.

## Observações de uso
<a name="nvl2-usage-notes"></a>

*Pois NVL2, o retorno terá o valor do parâmetro *not\$1null\$1return\$1value ou null\$1return\$1value*, o que for selecionado pela função, mas terá o tipo de dados *not\$1null\$1return\$1value*.*

Por exemplo, supondo que column1 seja NULL, as consultas seguintes retornarão o mesmo valor. No entanto, o tipo de dados do valor de retorno DECODE será INTEGER e o tipo de dados do valor de NVL2 retorno será VARCHAR.

```
select decode(column1, null, 1234, '2345');
select nvl2(column1, '2345', 1234);
```

## Exemplo
<a name="NVL2-examples"></a>

O seguinte exemplo altera alguns dados de amostra e, então, avalia dois campos para fornecer as informações de contato apropriadas para usuários: 

```
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
```