

 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](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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 DECODE
<a name="r_DECODE_expression"></a>

Un'espressione DECODE sostituisce un valore specifico con un altro valore specifico o un valore predefinito, in base al risultato di una condizione di uguaglianza. Questa operazione è equivalente all'operazione di una semplice espressione CASE o di un' IF-THEN-ELSEistruzione.

## Sintassi
<a name="r_DECODE_expression-synopsis"></a>

```
DECODE ( expression, search, result [, search, result ]... [ ,default ] )
```

Questo tipo di espressione è utile per sostituire abbreviazioni o codici archiviati in tabelle con valori aziendali significativi necessari per i report.

## Parameters
<a name="r_DECODE_expression-parameters"></a>

 *espressione*   
La fonte del valore che si desidera confrontare, come ad esempio una colonna in una tabella.

 *cerca*   
Il valore di destinazione che viene confrontato con l'espressione di origine, ad esempio un valore numerico o una stringa di caratteri. L'espressione di ricerca deve valutare un singolo valore fisso. Non è possibile specificare un'espressione che restituisca un intervallo di valori, ad `age between 20 and 29` esempio è necessario specificare search/result coppie separate per ogni valore che si desidera sostituire.  
Il tipo di dati di tutte le istanze dell'espressione di ricerca deve essere lo stesso o compatibile. I parametri *espressione* e *cerca* devono essere anche compatibili.

 *result*   
Il valore di sostituzione che la query restituisce quando l'espressione corrisponde al valore di ricerca. È necessario includere almeno una search/result coppia nell'espressione DECODE.  
I tipi di dati di tutte le istanze dell'espressione del risultato devono essere gli stessi o compatibili. I parametri *risultato* e *impostazione predefinita* devono essere anche compatibili.

 *default*   
Un valore predefinito facoltativo che viene utilizzato per i casi in cui la condizione di ricerca non ha esito positivo. Se non viene specificato un parametro, l'espressione DECODE restituisce NULL.

## Note per l’utilizzo
<a name="decode-expression-usage-notes"></a>

Se il valore *espressione* e il valore *cerca* sono entrambi NULL, il risultato DECODE è il valore *risultato* corrispondente. Per un'illustrazione di questo uso della funzione, vedere la sezione Esempi.

Quando viene utilizzato in questo modo, DECODE è simile a [NVL2 funzione](r_NVL2.md), ma ci sono alcune differenze. Per una descrizione di queste differenze, consultate le note sull' NVL2 utilizzo.

## Esempi
<a name="r_DECODE_expression-examples"></a>

Quando il valore `2008-06-01` esiste nella colonna CALDATE della DATETABLE, l'esempio seguente lo sostituisce con `June 1st, 2008`. L'esempio sostituisce tutti gli altri valori CALDATE con NULL. 

```
select decode(caldate, '2008-06-01', 'June 1st, 2008')
from datetable where month='JUN' order by caldate;

case
----------------
June 1st, 2008

...
(30 rows)
```

Nell'esempio seguente viene utilizzata un'espressione DECODE per convertire le cinque colonne CATNAME abbreviate nella tabella CATEGORY in nomi completi e convertire altri valori nella colonna in `Unknown`. 

```
select catid, decode(catname,
'NHL', 'National Hockey League',
'MLB', 'Major League Baseball',
'MLS', 'Major League Soccer',
'NFL', 'National Football League',
'NBA', 'National Basketball Association',
'Unknown')
from category
order by catid;

catid  |	case
-------+---------------------------------
1      | Major League Baseball
2      | National Hockey League
3      | National Football League
4      | National Basketball Association
5      | Major League Soccer
6      | Unknown
7      | Unknown
8      | Unknown
9      | Unknown
10     | Unknown
11     | Unknown
(11 rows)
```

Usa un'espressione DECODE per trovare locali in Colorado e Nevada con NULL nella colonna VENUESEATS; convertili in zeri. NULLs Se la colonna VENUESEATS non è NULL, restituire 1 come risultato. 

```
select venuename, venuestate, decode(venueseats,null,0,1)
from venue
where venuestate in('NV','CO')
order by 2,3,1;

venuename	              | venuestate     | case
------------------------------+----------------+-----------
Coors Field                   |	CO	       |   1
Dick's Sporting Goods Park    |	CO	       |   1
Ellie Caulkins Opera House    |	CO	       |   1
INVESCO Field		      |	CO	       |   1
Pepsi Center		      |	CO	       |   1
Ballys Hotel		      |	NV	       |   0
Bellagio Hotel                |	NV	       |   0
Caesars Palace                |	NV	       |   0
Harrahs Hotel                 |	NV	       |   0
Hilton Hotel                  |	NV	       |   0
...						
(20 rows)
```