DECODE fungsi - Amazon Redshift

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

DECODE fungsi

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

Sintaks

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

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, sepertiage between 20 and 29; Anda perlu menentukan pasangan pencarian/hasil 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 pasangan pencarian/hasil 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, DECODE ekspresi kembaliNULL.

Catatan penggunaan

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

Ketika digunakan dengan cara DECODE ini, mirip denganNVL2 fungsi, tetapi ada beberapa perbedaan. Untuk deskripsi perbedaan-perbedaan ini, lihat catatan NVL2 penggunaan.

Contoh

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

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 DECODE ekspresi untuk menemukan tempat di Colorado dan Nevada dengan NULL di VENUESEATS kolom; ubah NULLs menjadi nol. Jika VENUESEATS kolom tidakNULL, 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)