Tutorial SQL ini memberikan penjelasan, contoh fungsi NULLIF di Oracle
Fungsi NULLIF adalah fungsi yang sangat berguna. Ini membandingkan dua nilai dan mengembalikan nol jika nilainya sama, jika tidak, kembalikan nilai pertama
expr1 :ini adalah nilai sumber atau ekspresi yang akan dibandingkan dengan expr2
expr2 :Ini juga merupakan nilai sumber yang dibandingkan dengan expr1
Anda tidak dapat menentukan NULL literal untuk nilai pertama
SQL> pilih nullif(NULL,1) dari dual;
pilih nullif(NULL,1) dari dual
*
ERROR pada baris 1:
ORA-00932:tipe data tidak konsisten:diharapkan - dapatkan CHAR
Penggunaan dan Contoh
SQL> pilih nullif(1,1) dari dual;NULLIF(1,1)
-----------SQL> pilih nullif(1,2) dari dual;NULLIF( 1,2)
-----------
1
Catatan Penting
1) Pernyataan ini sangat mirip dengan pernyataan kasus dan setara dengan
CASE WHEN expr1=expr2 THEN NULL ELSE expr1 END
2) Jika kedua argumen adalah tipe data numerik, maka Oracle Database menentukan argumen dengan prioritas numerik yang lebih tinggi, secara implisit mengonversi argumen lain ke tipe data tersebut, dan mengembalikan tipe data tersebut. Jika argumennya bukan numerik, maka argumen tersebut harus dari tipe data oracle yang sama, atau Oracle akan mengembalikan kesalahan.
SQL> pilih nullif(1,'apple') dari dual;
pilih nullif(1,'apple') dari dual
*
ERROR pada baris 1:
ORA-00932 :tipe data tidak konsisten:diharapkan NUMBER mendapat CHARSQL> pilih nullif('apple',1) dari dual;
pilih nullif('apple',1) dari dual
*
ERROR pada baris 1:
ORA-00932 :tipe data tidak konsisten:diharapkan CHAR mendapat NUMBER
Contoh Lainnya
pilih first_name, length(first_name),last_name,length(last_name), nullif(length(first_name),length(last_name)) dari emp;SELECT NULLIF('Sunday', 'Friday') AS check FROM dual;Kasus penggunaan lain dari fungsi NULLIF adalah jika Anda ingin membuat daftar karyawan yang telah berganti pekerjaan sejak mereka dipekerjakan, seperti yang ditunjukkan oleh job_id di tabel job_history berbeda dari job_id saat ini di tabel karyawan
pilih emp_name,nullif(b.job_id,a.job_id) old_job dari karyawan a, job_history b di mana a.emp_id=b.emp_id;FAQ untuk fungsi Nullif
Cara menghindari kesalahan pembagian dengan nol dengan bantuan fungsi NULLIF
Kami mendapatkan kesalahan bagi dengan nol jika penyebut dalam pembagian adalah nol. Kita dapat menghindari dengan menggunakan fungsi NULLIF seperti di bawah ini
select 100/ nullif(0,0) from dual;
Sekarang di sini karena kedua nilainya sama, Nullif akan mengembalikan null dan seluruh ekspresi akan mengembalikan null dari kesalahan apapun. Berikut adalah bagaimana Anda dapat menggunakan ketika berhadapan dengan kolom nyata
pilih col2/ nullif(col1,0) dari exp;Artikel Terkait
Perbarui pernyataan di Oracle
fungsi NVL2 di Oracle
Fungsi NVL di Oracle
Fungsi Gabungan di Oracle
Fungsi baris tunggal di sql
Hapus dari pernyataan tabel di OracleSumber Daya Eksternal
Referensi Oracle untuk NULLIF