Oracle NVL Function

Oracle Nvl Function



Ang null value ay isang field na iniwang blangko o walang nakatalagang value.

Ang mga halaga ng NULL ay karaniwan sa mga database, lalo na kapag nag-i-import ng panlabas na data. Samakatuwid, maliban kung ang isang column ay naglalaman ng isang hadlang upang maiwasan ang mga NULL na halaga, ang database engine ay malamang na gumamit ng isang NULL na halaga para sa isang nawawalang halaga.







Bagama't karaniwan ang mga halaga ng NULL, maaari silang humantong sa mga isyu sa database dahil ang database ay walang halaga upang gumana. Samakatuwid, isang magandang kasanayan ang maglapat ng mga aksyon upang mahawakan ang mga NULL na halaga sa iyong Mga Query.



Sa post na ito, matututunan natin kung paano i-convert ang mga NULL na halaga sa isang ibinigay na talahanayan upang maglaman ng default na halaga na mas malamang na magdulot ng mga error sa pagpapatakbo sa iyong database.



Oracle NVL Function

Gaya ng nabanggit, pinahihintulutan tayo ng function na ito na palitan ang mga NULL na halaga ng mas makabuluhang halaga. Ang function syntax ay ibinigay sa ibaba:





NVL ( expr1, expr2 ) ;

Tumatanggap ang function ng dalawang pangunahing argumento:

expr1 at expr2 – Tinutukoy ng parameter na ito ang value na susuriin para sa NULL values. Kung ang halaga ng expr1 ay NULL, ibabalik ng function ang halaga ng expr2.



Ang parehong mga expression ay maaaring magkaroon ng magkatulad o magkaibang mga uri ng data. Kung magkaiba ang kaukulang mga uri ng data, ang database engine ay maaaring magsagawa ng implicit na conversion upang payagan ang pagiging tugma sa mga uri ng data. Kung imposibleng i-convert ang kaukulang mga uri ng data, maghahagis ng error ang database engine.

Halimbawa ng Paggamit ng Function ng Oracle NVL().

Ang sumusunod na halimbawa ay nagpapakita ng pangunahing paggamit ng NVL() function:

Halimbawa 1

Isaalang-alang ang sumusunod na halimbawa:

pumili lvl ( 'Kamusta' , 'mundo' ) mula sa dalawahan;

Sa nakaraang halimbawa, ginagamit namin ang NVL() function upang subukan kung ang string na 'hello' ay isang NULL na halaga. Dahil ang ibinigay na halaga ay hindi null, ibabalik ng function ang string na 'hello'.

Halimbawa 2

Isaalang-alang ang pangalawang halimbawa na ipinapakita sa ibaba:

pumili lvl ( wala, 'mundo' ) mula sa dalawahan;

Sa kasong ito, dahil ang unang expression ay isang NULL na halaga, ibabalik ng query ang pangalawang string tulad ng ipinapakita sa ibaba:

Halimbawa 3

Magagamit din natin ang NVL() function upang palitan ang mga halaga ng NULl sa isang talahanayan ng database. Isaalang-alang ang talahanayan ng mga empleyado na ipinapakita sa ibaba:

pumili FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT mula sa EMPLOYEES emp;

Nagresultang talahanayan:

Tulad ng nakikita natin, ang column na commission_pct ay naglalaman ng mga halaga ng NULl. Maaari kaming lumikha ng isang query upang palitan ang mga NULL na halaga mula sa column na commission_pct na may 0, tulad ng ipinapakita sa halimbawa sa ibaba:

pumili FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( COMMISSION_PCT, 0 )
mula sa EMPLOYEES emp;

Sa nakaraang halimbawang query, ginagamit namin ang NVL() function upang subukan ang halaga sa column na commission_pct para sa mga NULL. Kung mayroong isang NULL na halaga, ibinabalik namin ang 0. Kung hindi, ibinabalik namin ang orihinal na halaga.

Ito ay dapat magpapahintulot sa amin na palitan ang mga halaga ng NULL sa column ng 0, tulad ng ipinapakita sa resultang talahanayan sa ibaba:

Maaari naming gamitin ito sa isang UPDATE na pahayag o iimbak ang nagresultang halaga sa isang view ng talahanayan.

Konklusyon

Sa tutorial na ito, natutunan mo kung paano gamitin ang Oracle NVL() function upang palitan ang mga NULL na halaga ng mga default na halaga. Mabuting tandaan na kahit na ang NVL() function ay malapit na kahawig ng COALESCE() function, ang NVL() function ay maaari lamang magbalik ng isang value. Kasabay nito, ang coalesce() function ay maaaring magbalik ng maraming value.

Kung naghahanap ka ng function na maaaring tumagal ng higit sa dalawang argumento nang hindi ginagamit ang coalesce() function, isaalang-alang ang NVL2() function.