Teguh Susanto wrote: > > > kepada Senior DBA dan milliser Oracle > mungkin kita sering menggunakan function DECODE,NVL,CASE dalama suatu > query terutama pada field2 yg akan ditampilkan > saya punya permasalahn tentang statment If,decode lain2nya didalam > filter suatu query > contoh > "SELECT a.NIP,a.nama_ pegawai,a. alamat FROM tm_pegawai a > WHERE a.kd_bagian= '<parameter> '",tapi kalau parameter tsb tidak ada > nilainya tentunya kosong, apakah ada semacam decode,statment IF atau > cara yg lain utntuk filter di query apabila parameter tsb tidak diisi > jadi seolah-olah " SELECT a.NIP,a.nama_ pegawai,a. alamat FROM > tm_pegawai a" >
Tidak ada, kecuali querynya adalah dynamic sql. Tapi ada workaround-nya dan tentu saja ada cost di dalamnya. 1. Jika field kd_bagian TIDAK memiliki nilai NULL, maka where condition berikut bisa digunakan [code] WHERE a.kd_bagian = DECODE(parameter,NULL,a.kd_bagian) [/code] 2. Tetapi jika field kd_bagian mempunyai nilai NULL, maka index di kd_bagian (jika ada) terpaksa dikorbankan dengan menggunakan where condition [code] WHERE NVL(a.kd_bagian,'0') = DECODE(parameter,NULL,NVL(a.kd_bagian,'0')) [/code] > sementara ini masih saya atasi disisi programingnya > atas perhatinnya sy ucapkan terimkasih > > teguh > > CMIIW, AH

