Pengantar dekode sql Oracle
Di bagian ini, kita akan membahas tentang pemrosesan dekode Oracle yang merupakan aspek yang sangat penting dari pernyataan sql Oracle
Oracle decode adalah metode dalam database Oracle untuk mengubah nilai data dari satu nilai ke nilai lain yang lebih baik untuk dipahami. Oracle Decode mengubah nilai data pada waktu pengambilan.
Ini adalah jenis Jika maka yang lain untuk pemrosesan
Blok kode untuk Oracle sql Decode di bawah
decode(ekspresi atau nama kolom, kecocokan, hasil [,cocok, hasil]…[,default] )
Berikut adalah arti dari istilah dalam kode di atas
a) ekspresi atau kolom adalah nilai yang akan dibandingkan
b) cocok adalah nilai yang dibandingkan dengan ekspresi
c) result adalah nilai yang dikembalikan, jika ekspresi sama dengan kecocokan
d) default adalah opsional. Jika tidak ada kecocokan yang ditemukan, decode akan mengembalikan default. Jika default dihilangkan, maka pernyataan decode akan mengembalikan NULL (tidak ditemukan kecocokan).
Contoh
pilih |
Berikut adalah algoritme untuk lebih memahaminya
1) Oracle mengambil nilai kolom kode Fase
2) jika Kode Fase ='P' lalu Tertunda
3) jika Kode Fase ='C' lalu Selesai
4) jika Kode Fase ='T' lalu Dihentikan
5) jika kode Fase ='S' lalu Siaga
6) Jika kode Fase bukan salah satu dari yang di atas , dekode kembali Tidak Diketahui
7) Jika default tidak ada itu akan memberikan null
Perhatikan bahwa dekode Oracle dimulai dengan menentukan nama kolom atau ekspresi, diikuti dengan kumpulan nilai transformasi pasangan yang cocok. Di akhir pernyataan decode kami menemukan nilai default. Nilai default memberitahu decode apa yang akan ditampilkan jika nilai kolom tidak ada dalam daftar pasangan.
Kita bisa mengatakan algoritmanya seperti ini
if (expr ==search1) return(result1); elseif (expr ==search2) return( result2); …elseif (expr ==searchn) return(resultn); else return(default); |
Beberapa poin lagi yang perlu diingat untuk Oracle Decode
1) Dalam fungsi DECODE, Oracle menganggap dua nol setara. Jika expr adalah null, maka Oracle mengembalikan hasil pencarian pertama yang juga null.
SQL> SELECT decode(null,null,1,0) FROM dual;
DECODE(NULL,NULL,1,0)
———————
1
2) Jumlah maksimum komponen dalam fungsi DECODE, termasuk expr, pencarian, hasil, dan default, adalah 255.
3) Oracle secara otomatis mengonversi nilai untuk ekspresi dan compare_value ke tipe data dari compare_value pertama. Juga tipe data dari return_value dikonversi ke tipe data dari return_value pertama. Jika hasil pertama memiliki tipe data CHAR atau jika hasil pertama adalah null, maka Oracle mengonversi nilai yang dikembalikan ke tipe data VARCHAR2
Cara membaca decode di Oracle
kita dapat membaca pernyataan decode sebagai pernyataan if-else if. Argumen pertama dalam pernyataan decode umumnya adalah beberapa kolom di mana transformasi data diperlukan. Argumen setelah itu akan membandingkan nilai argumen pertama dengannya
FAQ tentang pemrosesan Oracle sql Decode
(1)Kita telah melihat bahwa "expr" disamakan dengan nilai yang ditentukan, Bisakah kita menggunakan operator pertidaksamaan seperti> atau
Mari kita ambil contoh
SELECT DECODE(gaji,<50000, sal + 1000, sal + 500) Final_salary FROM emp;
ERROR pada baris 2
ORA-00936:ekspresi hilang
Jadi kita tidak bisa menggunakan itu. Kita perlu menggunakan pernyataan kasus untuk melakukannya. atau kita dapat menandatangani fungsi dalam decode untuk mencapainya
SELECT DECODE(sign(salary- 50000), -1,sal + 1000, sal + 500) Final_salary FROM emp;
Pada dasarnya, kita perlu mengonversi persyaratan untuk beberapa formula yang dapat mengevaluasi beberapa nilai
PILIH col1,col2 decode( abs(col1-col2), 0, ‘col1 =col2’,Col1-col2, ‘col1> col2′,’col1
CASE dapat bekerja sebagai konstruksi PL/SQL tetapi DECODE hanya digunakan dalam pernyataan SQL.CASE dapat digunakan sebagai parameter fungsi/prosedur.
CASE mengharapkan konsistensi tipe data, DECODE tidak
CASE mengharapkan tipe data konsistensi, DECODE tidak
DECODE hanya dapat bekerja dengan nilai skalar tetapi CASE dapat bekerja dengan operator logika, predikat, dan subkueri yang dapat ditelusuri.
Ya Jumlah maksimum komponen dalam fungsi DECODE, termasuk expr, pencarian, hasil, dan default, adalah 255.
Tautan terkait
Dokumentasi Oracle tentang decode
cara menulis kueri sql
Pernyataan Sql Dasar
Pernyataan Kasus Oracle Dijelaskan dengan Tip dan Contoh
Tutorial SQL