Dalam Oracle, fungsi nyahkod() digunakan untuk membandingkan nilai input dengan senarai parameter dalam fungsi, dan mengembalikan nilai yang sepadan berdasarkan nilai input Sintaksnya ialah "nyahkod(keadaan, nilai 1 , pulangkan nilai 1 , nilai 2, pulangkan nilai 2,... nilai n, nilai pulangan n, nilai lalai)".
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.
Penggunaan nyahkod fungsi Oracle:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值);
Ini ialah ungkapan penyahkod.
Fungsi DECODE() membandingkan nilai input dengan senarai parameter dalam fungsi dan mengembalikan nilai yang sepadan berdasarkan nilai input. Senarai parameter fungsi terdiri daripada beberapa nilai berangka dan nilai hasil yang sepadan dengan beberapa bentuk genap ordinal. Sudah tentu, jika ia gagal untuk berjaya memadankan mana-mana jujukan parameter sebenar, fungsi itu juga mempunyai nilai pulangan lalai.
Maksud fungsi ini adalah seperti berikut:
IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF
nyahkod (operasi medan atau medan, nilai 1, nilai 2, nilai 3)
Hasil daripada ini fungsi ialah , apabila nilai medan atau operasi medan adalah sama dengan nilai 1, fungsi mengembalikan nilai 2, jika tidak ia mengembalikan nilai 3
Sudah tentu, nilai 1, nilai 2, dan nilai 3 juga boleh ekspresi. Fungsi ini memastikan Pernyataan sql lebih mudah
Penggunaan:
1. Bandingkan saiz
pilih nyahkod(tanda(pembolehubah 1-pembolehubah 2),-1. , pembolehubah 1, pembolehubah 2 ) daripada dwi; --Ambil nilai yang lebih kecil
fungsi tanda() masing-masing mengembalikan 0, 1, -1 bergantung pada sama ada nilai ialah 0, nombor positif atau nombor negatif
Contohnya:
Pembolehubah 1=10, pembolehubah 2=20
Kemudian tanda (pembolehubah 1-pembolehubah 2) mengembalikan -1, dan hasil penyahkodan ialah "pembolehubah 1 ", mencapai tujuan mengambil nilai yang lebih kecil.
2. Fungsi ini digunakan dalam pernyataan SQL Fungsi ini diperkenalkan seperti berikut:
Fungsi Nyahkod adalah serupa dengan siri pernyataan IF-THEN-ELSE bersarang. base_exp dibandingkan dengan compare1, compare2, dsb. dalam urutan. Jika base_exp sepadan dengan item bandingkan ke-i, kembalikan nilai sepadan ke-i. Jika base_exp tidak sepadan dengan mana-mana nilai perbandingan, lalai dikembalikan. Setiap nilai perbandingan dinilai dalam urutan, dan jika padanan ditemui, nilai perbandingan yang selebihnya (jika ada) tidak dinilai lagi. NULL base_exp dianggap bersamaan dengan nilai perbandingan NULL. Jika perlu, setiap nilai perbandingan ditukar kepada jenis data yang sama seperti nilai perbandingan pertama, yang juga merupakan jenis nilai pulangan.
Fungsi Nyahkod sangat berguna dalam pembangunan sebenar
Digabungkan dengan fungsi Lpad, cara menambah 1 secara automatik pada nilai kunci utama dan menambah 0 di hadapan
pilih LPAD(nyahkod(kiraan (nombor rekod),0,1, maks(ke_nombor(nombor rekod) 1)),14,'0') nombor rekod daripada tetdmis
cth:
select decode(dir,1,0,1) from a1_interval
nilai dir Jika 1, ia menjadi 0, jika 0, ia menjadi 1
Sebagai contoh, saya ingin menanyakan bilangan lelaki dan perempuan dalam kelas tertentu?
Biasanya kami menulis seperti ini:
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;
Jika anda ingin memaparkannya bersama-sama, anda perlu menyatukannya, yang terlalu menyusahkan
Untuk menggunakan penyahkod, anda hanya memerlukan satu ayat
pilih nyahkod (jantina, lelaki, 1, 0), nyahkod( Jantina, perempuan, 1, 0) daripada jadual
3, susunan mengikut untuk melaksanakan pengisihan lajur aksara tertentu
Anda juga boleh menggunakan Nyahkod dalam Pesanan mengikut.
Contoh: jadual table_subject mempunyai lajur nama_subjek. Ia dikehendaki mengisih mereka dalam susunan: bahasa, nombor, dan bahasa asing. Pada masa ini, anda boleh menggunakan Decode dengan mudah untuk melengkapkan keperluan.
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Apakah kegunaan decode dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!