

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi DECODE
<a name="r_DECODE_expression"></a>

Ekspresi DECODE menggantikan nilai tertentu dengan nilai spesifik lain atau nilai default, tergantung pada hasil dari kondisi kesetaraan. Operasi ini setara dengan operasi ekspresi CASE sederhana atau IF-THEN-ELSE pernyataan.

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

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

Jenis ekspresi ini berguna untuk mengganti singkatan atau kode yang disimpan dalam tabel dengan nilai bisnis yang berarti yang diperlukan untuk laporan.

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

 *ekspresi*   
Sumber nilai yang ingin Anda bandingkan, seperti kolom dalam tabel.

 *pencarian*   
Nilai target yang dibandingkan dengan ekspresi sumber, seperti nilai numerik atau string karakter. Ekspresi pencarian harus mengevaluasi ke satu nilai tetap. Anda tidak dapat menentukan ekspresi yang mengevaluasi rentang nilai, seperti`age between 20 and 29`; Anda perlu menentukan search/result pasangan terpisah untuk setiap nilai yang ingin Anda ganti.  
Tipe data dari semua contoh ekspresi pencarian harus sama atau kompatibel. Parameter *ekspresi* dan *pencarian* juga harus kompatibel.

 *hasil*   
Nilai pengganti yang dikembalikan kueri saat ekspresi cocok dengan nilai pencarian. Anda harus menyertakan setidaknya satu search/result pasangan dalam ekspresi DECODE.  
Tipe data dari semua contoh ekspresi hasil harus sama atau kompatibel. *Hasil* dan parameter *default* juga harus kompatibel.

 *default*   
Nilai default opsional yang digunakan untuk kasus ketika kondisi pencarian gagal. Jika Anda tidak menentukan nilai default, ekspresi DECODE mengembalikan NULL.

## Catatan penggunaan
<a name="decode-expression-usage-notes"></a>

*Jika nilai *ekspresi* dan nilai *pencarian* keduanya NULL, hasil DECODE adalah nilai hasil yang sesuai.* Untuk ilustrasi penggunaan fungsi ini, lihat bagian Contoh.

Ketika digunakan dengan cara ini, DECODE mirip dengan[NVL2 fungsi](r_NVL2.md), tetapi ada beberapa perbedaan. Untuk deskripsi perbedaan ini, lihat catatan NVL2 penggunaan.

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

Ketika nilai `2008-06-01` ada di kolom caldate dari datetable, contoh berikut menggantikannya dengan. `June 1st, 2008` Contoh menggantikan semua nilai caldate lainnya dengan NULL. 

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

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

...
(30 rows)
```

Contoh berikut menggunakan ekspresi DECODE untuk mengonversi lima kolom CATNAME yang disingkat dalam tabel CATEGORY menjadi nama lengkap dan mengonversi nilai lain di kolom menjadi. `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)
```

Gunakan ekspresi DECODE untuk menemukan tempat di Colorado dan Nevada dengan NULL di kolom VENUESEATS; ubah menjadi nol. NULLs Jika kolom VENUESEATS bukan NULL, kembalikan 1 sebagai hasilnya. 

```
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)
```