Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Fungsi Oracle NULLIF()

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 CHAR

SQL> 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 Oracle

Sumber Daya Eksternal
Referensi Oracle untuk NULLIF


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana beberapa baris dapat digabungkan menjadi satu di Oracle tanpa membuat prosedur tersimpan?

  2. Apa Itu Prosedur Tersimpan PL/SQL Dalam Database Oracle?

  3. Oracle Database 20c Fitur Baru

  4. Ganti nama Tabel atau Tampilan Oracle

  5. BIN_TO_NUM() Fungsi di Oracle