Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
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à.
NVL2 funzione
Restituisce uno dei due valori in base al fatto che un'espressione specificata valuti in NULL o NOT NULL.
Sintassi
NVL2 ( expression, not_null_return_value, null_return_value )
Arguments (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 valuta in 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 valuta in 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 di NVL2 restituzione è 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
Funzione DECODEpuò essere usato in modo simile a NVL2 quando l'espressione e i parametri di ricerca sono entrambi nulli. La differenza è che per DECODE, la restituzione avrà sia il valore sia il tipo di dati del parametro risultato. Al contrario, for NVL2, 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 la colonna 1 sia NULL, le seguenti query restituiranno lo stesso valore. Tuttavia, il tipo di dati NVL2 del valore restituito DECODE sarà INTEGER e il tipo di dati del valore 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