Oracle NVL funktsioon

Oracle Nvl Funktsioon



Nullväärtus on väli, mis on jäetud tühjaks või millele pole määratud väärtust.

NULL väärtused on andmebaasides tavalised, eriti väliste andmete importimisel. Seega, kui veerg ei sisalda piirangut NULL-väärtuste vältimiseks, kasutab andmebaasimootor tõenäoliselt puuduva väärtuse jaoks NULL-väärtust.







Kuigi NULL väärtused on tavalised, võivad need põhjustada andmebaasiprobleeme, kuna andmebaasil pole väärtust, millega töötada. Seetõttu on hea tava rakendada toiminguid päringutes NULL-väärtuste käsitlemiseks.



Selles postituses õpime, kuidas teisendada antud tabelis olevaid NULL-väärtusi, et need sisaldaksid vaikeväärtust, mis tõenäoliselt põhjustab teie andmebaasis toimimisvigu.



Oracle NVL funktsioon

Nagu mainitud, võimaldab see funktsioon meil asendada NULL väärtused tähendusrikkamate väärtustega. Funktsiooni süntaks on esitatud allpool:





NVL ( avaldis1, avaldis2 ) ;

Funktsioon aktsepteerib kahte peamist argumenti:

avaldis1 ja avaldis2 – see parameeter määrab NULL väärtuste jaoks testitava väärtuse. Kui avaldis1 väärtus on NULL, tagastab funktsioon avaldis2 väärtuse.



Mõlemal avaldisel võivad olla sarnased või erinevad andmetüübid. Kui vastavad andmetüübid erinevad, võib andmebaasimootor sooritada kaudse teisenduse, et võimaldada ühilduvust andmetüüpidega. Kui vastavaid andmetüüpe ei ole võimalik teisendada, annab andmebaasimootor veateate.

Oracle NVL() funktsiooni näide kasutamine

Järgmine näide demonstreerib funktsiooni NVL() põhikasutust:

Näide 1

Kaaluge järgmist näidet:

vali lvl ( 'Tere' , 'maailm' ) kahest;

Eelmises näites kasutame funktsiooni NVL(), et testida, kas string „tere” on NULL väärtus. Kuna esitatud väärtus ei ole null, tagastab funktsioon stringi 'tere'.

Näide 2

Mõelge teisele allpool toodud näitele:

vali lvl ( null, 'maailm' ) kahest;

Sel juhul, kuna esimene avaldis on NULL väärtus, tagastab päring teise stringi, nagu allpool näidatud:

Näide 3

NULl väärtuste asendamiseks andmebaasitabelis saame kasutada ka funktsiooni NVL(). Vaadake allolevat töötajate tabelit:

vali FIRST_NAME, LAST_NAME, EMAIL, PALK, COMMISSION_PCT töötajatelt EMPLOYEES em;

Tulemustabel:

Nagu näeme, sisaldab veerg Commission_pct NULl väärtusi. Saame luua päringu, et asendada veerus Commission_pct olevad NULL väärtused 0-ga, nagu on näidatud allolevas näites:

vali FIRST_NAME, LAST_NAME, EMAIL, PALK, nvl ( COMMISSION_PCT, 0 )
alates TÖÖTAJAD emp;

Eelmises näitepäringus kasutame funktsiooni NVL() veerus Commission_pct oleva väärtuse testimiseks NULL-ide jaoks. Kui on NULL väärtus, tagastame 0. Vastasel juhul tagastame algse väärtuse.

See peaks võimaldama meil asendada NULL väärtused veerus 0-ga, nagu on näidatud allolevas tabelis:

Saame seda kasutada lausega UPDATE või salvestada saadud väärtuse tabelivaates.

Järeldus

Selles õpetuses õppisite, kuidas kasutada funktsiooni Oracle NVL() NULL-väärtuste asendamiseks vaikeväärtustega. Hea on meeles pidada, et kuigi funktsioon NVL() sarnaneb väga funktsiooniga COALESCE(), saab funktsioon NVL() tagastada ainult ühe väärtuse. Samal ajal võib funktsioon coalesce() tagastada mitu väärtust.

Kui otsite funktsiooni, mis võib võtta rohkem kui kaks argumenti ilma funktsiooni coalesce() kasutamata, kaaluge funktsiooni NVL2().