Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

NVL2 fonction

Mode de mise au point
NVL2 fonction - Amazon Redshift

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.

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.

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

Syntaxe

NVL2 ( expression, not_null_return_value, null_return_value )

Arguments

expression

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

not_null_return_value

Valeur renvoyée si expression a une valeur NOT NULL. La valeur not_null_return_value doit avoir le même type de données que expression ou être implicitement convertie en ce type de données.

null_return_value

Valeur renvoyée si expression a une valeur NULL. La valeur null_return_value doit avoir le même type de données que expression ou être implicitement convertie en ce type de données.

Type de retour

Le type de NVL2 retour est déterminé comme suit :

  • Si not_null_return_value ou null_return_value a une valeur null, le type de données de l’expression non-null est renvoyé.

Si not_null_return_value et null_return_value n’ont pas de valeur null :

  • Si not_null_return_value et null_return_value ont le même type de données que le type de données renvoyé.

  • Si not_null_return_value et null_return_value ont des types de données numériques distincts, le type de données numériques compatible le plus petit est renvoyé.

  • Si not_null_return_value et null_return_value ont des types de données datetime distincts, un type de données d’horodatage est renvoyé.

  • Si not_null_return_value et null_return_value ont des types de données de caractères distincts, le type de données not_null_return_value est renvoyé.

  • Si not_null_return_value et null_return_value ont des types de données numériques et non numériques mixtes, le type de données de not_null_return_value est renvoyé.

Important

Dans les deux derniers cas où le type de données de not_null_return_value est renvoyé, null_return_value est converti implicitement en ce type de données. Si les types de données sont incompatibles, la fonction échoue.

Notes d’utilisation

Fonction DECODEpeut ê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_null_return_value ou null_return_value, selon ce qui est sélectionné par la fonction, mais aura le type de données not_null_return_value.

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

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

Rubrique suivante :

NULLIF

Rubrique précédente :

NVL et COALESCE

Sur cette page

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.