Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno 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à.
Funzione NVL2
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 restituzione NVL2 è determinato nel modo seguente:
-
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 DECODE può essere utilizzato in modo simile a NVL2 quando i parametri espressione e cerca sono entrambi null. La differenza è che per DECODE, la restituzione avrà sia il valore sia il tipo di dati del parametro risultato. Al contrario, per NVL2, la restituzione avrà il valore di entrambi i parametri, not_null_return_value oppure null_return_value, qualunque sia selezionato dalla funzione, ma avrà il tipo di dati di 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 del valore di restituzione DECODE sarà INTEGER e il tipo di dati del valore di restituzione NVL2 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