„Oracle NVL“ funkcija

Oracle Nvl Funkcija



Nulinė reikšmė yra laukas, kuris buvo paliktas tuščias arba jam nėra priskirtos vertės.

NULL reikšmės yra dažnos duomenų bazėse, ypač importuojant išorinius duomenis. Todėl, nebent stulpelyje yra apribojimų, neleidžiančių NULL reikšmėms, duomenų bazės variklis greičiausiai naudos NULL reikšmę trūkstamai reikšmei.







Nors NULL reikšmės yra įprastos, jos gali sukelti duomenų bazės problemų, nes duomenų bazė neturi jokios vertės, su kuria dirbti. Todėl gera praktika yra taikyti veiksmus, skirtus NULL reikšmėms jūsų užklausose apdoroti.



Šiame įraše sužinosime, kaip konvertuoti NULL reikšmes nurodytoje lentelėje, kad būtų numatytoji reikšmė, dėl kurios mažiau tikėtina, kad jūsų duomenų bazėje sukels veikimo klaidų.



„Oracle NVL“ funkcija

Kaip minėta, ši funkcija leidžia pakeisti NULL reikšmes prasmingesnėmis reikšmėmis. Funkcijų sintaksė pateikiama žemiau:





NVL ( expr1, expr2 ) ;

Funkcija priima du pagrindinius argumentus:

expr1 ir expr2 – šis parametras apibrėžia NULL verčių tikrintiną reikšmę. Jei expr1 reikšmė yra NULL, funkcija grąžins expr2 reikšmę.



Abi išraiškos gali turėti panašius arba skirtingus duomenų tipus. Jei atitinkami duomenų tipai skiriasi, duomenų bazės variklis gali atlikti numanomą konvertavimą, kad būtų suderinama su duomenų tipais. Jei neįmanoma konvertuoti atitinkamų duomenų tipų, duomenų bazės variklis išmes klaidą.

Oracle NVL() funkcijos pavyzdys naudojimas

Šis pavyzdys parodo pagrindinį NVL() funkcijos naudojimą:

1 pavyzdys

Apsvarstykite šį pavyzdį:

pasirinkite lvl ( 'Sveiki' , 'pasaulis' ) iš dvigubo;

Ankstesniame pavyzdyje mes naudojame funkciją NVL() norėdami patikrinti, ar eilutė „hello“ yra NULL reikšmė. Kadangi pateikta reikšmė nėra nulinė, funkcija grąžins eilutę „labas“.

2 pavyzdys

Apsvarstykite antrą pavyzdį, pateiktą žemiau:

pasirinkite lvl ( nulis, 'pasaulis' ) iš dvigubo;

Šiuo atveju, kadangi pirmoji išraiška yra NULL reikšmė, užklausa pateiks antrąją eilutę, kaip parodyta toliau:

3 pavyzdys

Taip pat galime naudoti funkciją NVL() norėdami pakeisti NULl reikšmes duomenų bazės lentelėje. Apsvarstykite toliau pateiktą darbuotojų lentelę:

pasirinkite FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT iš EMPLOYEES emp;

Rezultatų lentelė:

Kaip matome, Commission_pct stulpelyje yra NULl reikšmės. Galime sukurti užklausą, kad pakeistume NULL reikšmes iš stulpelio Commission_pct į 0, kaip parodyta toliau pateiktame pavyzdyje:

pasirinkite FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( COMMISSION_PCT, 0 )
iš EMPLOYEES emp;

Ankstesniame užklausos pavyzdyje mes naudojame funkciją NVL() norėdami patikrinti stulpelio Commission_pct reikšmę NULL. Jei yra NULL reikšmė, grąžiname 0. Kitu atveju grąžiname pradinę reikšmę.

Tai turėtų leisti mums pakeisti NULL reikšmes stulpelyje 0, kaip parodyta gautoje lentelėje:

Tai galime naudoti su UPDATE sakiniu arba išsaugoti gautą reikšmę lentelės rodinyje.

Išvada

Šiame vadove sužinojote, kaip naudoti Oracle NVL() funkciją norint pakeisti NULL reikšmes numatytosiomis reikšmėmis. Verta nepamiršti, kad nors funkcija NVL() labai panaši į COALESCE() funkciją, funkcija NVL() gali grąžinti tik vieną reikšmę. Tuo pačiu metu funkcija coalesce() gali grąžinti kelias reikšmes.

Jei ieškote funkcijos, kuri gali priimti daugiau nei du argumentus nenaudodama funkcijos coalesce(), apsvarstykite NVL2() funkciją.