

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# NVL2 fonction
<a name="r_NVL2"></a>

Renvoie l’une des deux valeurs selon qu’une expression spécifiée a pour valeur NULL ou NOT NULL.

## Syntaxe
<a name="r_NVL2-synopsis"></a>

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

## Arguments
<a name="r_NVL2-arguments"></a>

 *expression*   
Expression, telle qu’un nom de colonne, à évaluer pour l’état null.

 *not\$1null\$1return\$1value*   
Valeur renvoyée si *expression* a une valeur NOT NULL. La valeur *not\$1null\$1return\$1value* doit avoir le même type de données que *expression* ou être implicitement convertie en ce type de données.

 *null\$1return\$1value*   
Valeur renvoyée si *expression* a une valeur NULL. La valeur *null\$1return\$1value* doit avoir le même type de données que *expression* ou être implicitement convertie en ce type de données.

## Type de retour
<a name="r_NVL2-return-type"></a>

Le type de NVL2 retour est déterminé comme suit :
+ Si *not\$1null\$1return\$1value* ou *null\$1return\$1value* a une valeur null, le type de données de l’expression non-null est renvoyé.

Si *not\$1null\$1return\$1value* et *null\$1return\$1value* n’ont pas de valeur null :
+ Si *not\$1null\$1return\$1value* et *null\$1return\$1value* ont le même type de données que le type de données renvoyé.
+ Si *not\$1null\$1return\$1value* et *null\$1return\$1value* ont des types de données numériques distincts, le type de données numériques compatible le plus petit est renvoyé.
+ Si *not\$1null\$1return\$1value* et *null\$1return\$1value* ont des types de données datetime distincts, un type de données d’horodatage est renvoyé.
+ Si *not\$1null\$1return\$1value* et *null\$1return\$1value* ont des types de données de caractères distincts, le type de données *not\$1null\$1return\$1value* est renvoyé.
+ Si *not\$1null\$1return\$1value* et *null\$1return\$1value* ont des types de données numériques et non numériques mixtes, le type de données de *not\$1null\$1return\$1value* est renvoyé.

**Important**  
Dans les deux derniers cas où le type de données de *not\$1null\$1return\$1value* est renvoyé, *null\$1return\$1value* est converti implicitement en ce type de données. Si les types de données sont incompatibles, la fonction échoue.

## Notes d’utilisation
<a name="nvl2-usage-notes"></a>

[Fonction DECODE](r_DECODE_expression.md)peut être utilisé de la même manière que NVL2 lorsque l'*expression* et les paramètres *de recherche* sont tous deux nuls. La différence est que pour DECODE, le retour comportera à la fois la valeur et le type de données du paramètres *result*. *En revanche, pour NVL2, le retour aura la valeur du paramètre *not\$1null\$1return\$1value ou null\$1return\$1value*, selon ce qui est sélectionné par la fonction, mais aura le *type de données not\$1null\$1return\$1value*.*

Par exemple, en supposant que column1 a la valeur NULL, les requêtes suivantes renverront la même valeur. Cependant, le type de données de la valeur de retour DECODE sera INTEGER et le type de données de la valeur de NVL2 retour sera VARCHAR.

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

## Exemple
<a name="r_NVL2-examples"></a>

L’exemple suivant modifie quelques exemples de données, puis évalue les deux champs pour fournir des informations de contact aux utilisateurs : 

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