NVL2Funktion - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

NVL2Funktion

Gibt einen von zwei Werten zurück, je nachdem, ob ein bestimmter Ausdruck als oder ausgewertet wird. NULL NOT NULL

Syntax

NVL2 ( expression, not_null_return_value, null_return_value )

Argumente

expression

Ein Ausdruck (beispielsweise ein Spaltenname), der hinsichtlich des Null-Status ausgewertet werden soll.

not_null_return_value

Der zurückgegebene Wert, wenn der Ausdruck zu ausgewertet wird. NOT NULL Der Wert not_null_return_value muss entweder denselben Datentyp wie expression haben oder implizit in diesen Datentyp konvertiert werden können.

null_return_value

Der zurückgegebene Wert, wenn der Ausdruck zu ausgewertet wird. NULL Der Wert null_return_value muss entweder denselben Datentyp wie expression haben oder implizit in diesen Datentyp konvertiert werden können.

Rückgabetyp

Der NVL2 Rückgabetyp wird wie folgt bestimmt:

  • Wenn not_null_return_value oder null_return_value null ist, wird der Datentyp des Nicht-Null-Ausdrucks zurückgegeben.

Wenn sowohl not_null_return_value als auch null_return_value nicht null sind:

  • Wenn not_null_return_value und null_return_value denselben Datentyp haben, wird dieser Datentyp zurückgegeben.

  • Wenn not_null_return_value und null_return_value unterschiedliche numerische Datentypen haben, wird der kleinste kompatible numerische Datentyp zurückgegeben.

  • Wenn not_null_return_value und null_return_value unterschiedliche Datum-/Uhrzeit-Datentypen haben, wird ein Zeitstempeldatentyp zurückgegeben.

  • Wenn not_null_return_value und null_return_value unterschiedliche Zeichendatentypen haben, wird der Datentyp von not_null_return_value zurückgegeben.

  • Wenn not_null_return_value und null_return_value gemischte numerische und nicht numerische Datentypen haben, wird der Datentyp von not_null_return_value zurückgegeben.

Wichtig

In den letzten beiden Fällen, in denen der Datentyp von not_null_return_value zurückgegeben wird, wird null_return_value implizit in diesen Datentyp umgewandelt. Wenn die Datentypen nicht kompatibel sind, schlägt die Funktion fehl.

Nutzungshinweise

DECODEFunktionkann auf ähnliche Weise verwendet werden, NVL2 als ob der Ausdruck und die Suchparameter beide Null sind. Der Unterschied besteht darinDECODE, dass die Rückgabe für sowohl den Wert als auch den Datentyp des Ergebnisparameters enthält. Im Gegensatz dazu hat die Rückgabe für NVL2 entweder den Wert des Parameters not_null_return_value oder null_return_value, je nachdem, welcher Wert von der Funktion ausgewählt wurde, aber den Datentyp not_null_return_value.

Gehen wir beispielsweise davon aus, dass Column1 den Wert hat, geben die folgenden Abfragen denselben Wert zurück. NULL Der DECODE Rückgabewert-Datentyp ist jedoch INTEGER und der NVL2 Rückgabewert-Datentyp wird sein. VARCHAR

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

Beispiel

Im folgenden Beispiel werden einige Beispieldaten modifiziert und anschließend zwei Felder ausgewertet, um die richtigen Kontaktinformationen für Benutzer bereitzustellen:

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