Fungsi Oracle NVL

Fungsi Oracle Nvl



Nilai nol ialah medan yang telah dibiarkan kosong atau tidak mempunyai nilai yang ditetapkan.

Nilai NULL adalah biasa dalam pangkalan data, terutamanya apabila mengimport data luaran. Oleh itu, melainkan lajur mengandungi kekangan untuk menghalang nilai NULL, enjin pangkalan data mungkin akan menggunakan nilai NULL untuk nilai yang hilang.







Walaupun nilai NULL adalah perkara biasa, ia boleh membawa kepada isu pangkalan data kerana pangkalan data tidak mempunyai nilai untuk digunakan. Oleh itu, amalan yang baik untuk menggunakan tindakan untuk mengendalikan nilai NULL dalam Pertanyaan anda.



Dalam siaran ini, kita akan belajar cara menukar nilai NULL dalam jadual tertentu untuk mengandungi nilai lalai yang kurang berkemungkinan menyebabkan ralat operasi dalam pangkalan data anda.



Fungsi Oracle NVL

Seperti yang dinyatakan, fungsi ini membolehkan kita menggantikan nilai NULL dengan nilai yang lebih bermakna. Sintaks fungsi disediakan di bawah:





NVL ( expr1, expr2 ) ;

Fungsi ini menerima dua hujah utama:

expr1 dan expr2 – parameter ini mentakrifkan nilai yang akan diuji untuk nilai NULL. Jika nilai expr1 ialah NULL, fungsi tersebut akan mengembalikan nilai expr2.



Kedua-dua ungkapan boleh mempunyai jenis data yang serupa atau berbeza. Jika jenis data yang sepadan berbeza, enjin pangkalan data mungkin melakukan penukaran tersirat untuk membenarkan keserasian dengan jenis data. Jika mustahil untuk menukar jenis data yang sepadan, enjin pangkalan data akan menimbulkan ralat.

Contoh Penggunaan Fungsi Oracle NVL().

Contoh berikut menunjukkan penggunaan asas fungsi NVL():

Contoh 1

Pertimbangkan contoh berikut:

pilih lvl ( 'hello' , 'dunia' ) daripada dual;

Dalam contoh sebelumnya, kami menggunakan fungsi NVL() untuk menguji sama ada rentetan 'hello' ialah nilai NULL. Oleh kerana nilai yang diberikan bukan nol, fungsi akan mengembalikan rentetan 'hello'.

Contoh 2

Pertimbangkan contoh kedua yang ditunjukkan di bawah:

pilih lvl ( null, 'dunia' ) daripada dual;

Dalam kes ini, memandangkan ungkapan pertama ialah nilai NULL, pertanyaan akan mengembalikan rentetan kedua seperti ditunjukkan di bawah:

Contoh 3

Kita juga boleh menggunakan fungsi NVL() untuk menggantikan nilai NULl dalam jadual pangkalan data. Pertimbangkan jadual pekerja yang ditunjukkan di bawah:

pilih FIRST_NAME, LAST_NAME, EMAIL, GAJI, COMMISSION_PCT daripada EMPLOYEES emp;

Jadual terhasil:

Seperti yang dapat kita lihat, lajur commission_pct mengandungi nilai NULl. Kita boleh membuat pertanyaan untuk menggantikan nilai NULL dari lajur commission_pct dengan 0, seperti yang ditunjukkan dalam contoh di bawah:

pilih FIRST_NAME, LAST_NAME, EMAIL, GAJI, nvl ( COMMISSION_PCT, 0 )
daripada PEKERJA emp;

Dalam contoh pertanyaan sebelumnya, kami menggunakan fungsi NVL() untuk menguji nilai dalam lajur commission_pct untuk NULL. Jika terdapat nilai NULL, kita kembalikan 0. Jika tidak, kita kembalikan nilai asal.

Ini sepatutnya membolehkan kita menggantikan nilai NULL dalam lajur dengan 0, seperti yang ditunjukkan dalam jadual yang terhasil di bawah:

Kita boleh menggunakan ini dengan pernyataan UPDATE atau menyimpan nilai yang terhasil dalam paparan jadual.

Kesimpulan

Dalam tutorial ini, anda mempelajari cara menggunakan fungsi Oracle NVL() untuk menggantikan nilai NULL dengan nilai lalai. Adalah baik untuk diingat bahawa walaupun fungsi NVL() hampir menyerupai fungsi COALESCE(), fungsi NVL() hanya boleh mengembalikan satu nilai. Pada masa yang sama, fungsi coalesce() boleh mengembalikan berbilang nilai.

Jika anda sedang mencari fungsi yang boleh mengambil lebih daripada dua hujah tanpa menggunakan fungsi coalesce(), pertimbangkan fungsi NVL2().