Di Oracle Database, NULLIF()
fungsi membandingkan dua ekspresi, dan mengembalikan null
jika kedua ekspresi sama. Jika tidak sama, maka fungsi mengembalikan ekspresi pertama.
Sintaks
Sintaksnya seperti ini:
NULLIF(expr1, expr2)
Contoh
Berikut ini contoh untuk didemonstrasikan:
SELECT NULLIF(5, 7)
FROM DUAL;
Hasil:
5
Dalam hal ini, argumennya tidak sama, sehingga fungsi mengembalikan argumen pertama.
Inilah yang terjadi jika kedua argumen sama:
SET NULL 'null';
SELECT NULLIF(7, 7)
FROM DUAL;
Hasil:
null
Kita dapat melihat bahwa NULLIF()
mengembalikan null
ketika kedua argumen sama
Mengenai baris pertama SET NULL 'null';
, saya menambahkannya agar sesi SQLcl saya mengembalikan null
setiap kali hasilnya nol.
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null
terjadi sebagai akibat dari SQL SELECT
penyataan.
Namun, Anda dapat menggunakan SET NULL
untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null
harus dikembalikan.
Dibandingkan dengan CASE
NULLIF()
fungsinya setara dengan CASE
berikut ini ekspresi:
CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
Jumlah Argumen Tidak Valid
Memanggil fungsi tanpa meneruskan argumen apa pun menghasilkan kesalahan:
SELECT NULLIF()
FROM DUAL;
Hasil:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Dan memberikan terlalu banyak argumen juga menyebabkan kesalahan:
SELECT NULLIF(1, 2, 3)
FROM DUAL;
Hasil:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"