NVL2funzione - Amazon Redshift

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

NVL2funzione

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

Sintassi

NVL2 ( expression, not_null_return_value, null_return_value )

Argomenti

espressione

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

not_null_return_value

Il valore restituito se l'espressione restituisce a. NOT NULL Il valore not_null_return_value deve avere lo stesso tipo di dati dell' espressione o essere implicitamente convertibile in quel tipo di dati.

null_return_value

Il valore restituito se l'espressione restituisce a. NULL Il valore null_return_value deve avere lo stesso tipo di dati dell' espressione o essere implicitamente convertibile in quel tipo di dati.

Tipo restituito

Il tipo NVL2 restituito è determinato come segue:

  • Se not_null_return_value o null_return_value è null, viene restituito il tipo di dati dell'espressione not null.

Se sia not_null_return_value sia null_return_value sono non null:

  • Se sia not_null_return_value sia null_return_value hanno lo stesso tipo di dati, viene restituito quel tipo di dati.

  • Se not_null_return_value e null_return_value hanno tipi di dati numerici diversi, viene restituito il tipo di dati numerico compatibile più piccolo.

  • Se not_null_return_value e null_return_value hanno tipi di dati di datetime diversi, viene restituito un tipo di dati numerici di timestamp.

  • Se not_null_return_value e null_return_value hanno diversi tipi di dati di carattere, viene restituito il tipo di dati di not_null_return_value.

  • Se not_null_return_value e null_return_value hanno tipi di dati numerici e non numerici misti viene restituito il tipo di dati di not_null_return_value.

Importante

Negli ultimi due casi in cui viene restituito il tipo di dati di not_null_return_value, null_return_value 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

DECODEfunzionepuò essere usato in modo simile a NVL2 quando l'espressione e i parametri di ricerca sono entrambi nulli. La differenza è che perDECODE, il risultato restituito avrà sia il valore che il tipo di dati del parametro result. Al contrario, forNVL2, il valore restituito avrà il valore del parametro not_null_return_value o null_return_value, a seconda di quale sia selezionato dalla funzione, ma avrà il tipo di dati not_null_return_value.

Ad esempio, supponendo che column1 sia, le seguenti query restituiranno lo stesso valore. NULL Tuttavia, il tipo di dati del valore DECODE restituito sarà INTEGER e il tipo di dati del valore NVL2 restituito sarà. VARCHAR

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

Esempio

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