Funkcija Oracle NVL

Funkcija Oracle Nvl



Ničelna vrednost je polje, ki je ostalo prazno ali nima dodeljene vrednosti.

Vrednosti NULL so pogoste v bazah podatkov, zlasti pri uvažanju zunanjih podatkov. Zato bo motor baze podatkov za manjkajočo vrednost verjetno uporabil vrednost NULL, razen če stolpec vsebuje omejitev za preprečevanje vrednosti NULL.







Čeprav so vrednosti NULL pogoste, lahko povzročijo težave z zbirko podatkov, saj zbirka podatkov nima nobene vrednosti za delo. Zato je dobra praksa, da uporabite dejanja za obravnavanje vrednosti NULL v svojih poizvedbah.



V tej objavi se bomo naučili, kako v dani tabeli pretvoriti vrednosti NULL, da bodo vsebovale privzeto vrednost, za katero je manj verjetno, da bo povzročila napake pri delovanju v vaši bazi podatkov.



Funkcija Oracle NVL

Kot že omenjeno, nam ta funkcija omogoča zamenjavo vrednosti NULL z bolj smiselnimi vrednostmi. Sintaksa funkcije je navedena spodaj:





NVL ( izraz1, izraz2 ) ;

Funkcija sprejme dva glavna argumenta:

izraz1 in izraz2 – ta parameter določa vrednost, ki jo je treba testirati za vrednosti NULL. Če je vrednost izraza1 NULL, bo funkcija vrnila vrednost izraza2.



Oba izraza imata lahko podobne ali različne vrste podatkov. Če se ustrezni tipi podatkov razlikujejo, lahko mehanizem baze podatkov izvede implicitno pretvorbo, da omogoči združljivost s tipi podatkov. Če ni mogoče pretvoriti ustreznih podatkovnih vrst, bo mehanizem baze podatkov izdal napako.

Primer uporabe funkcije Oracle NVL().

Naslednji primer prikazuje osnovno uporabo funkcije NVL():

Primer 1

Razmislite o naslednjem primeru:

izberite lvl ( 'zdravo' , 'svet' ) iz dvojine;

V prejšnjem primeru smo s funkcijo NVL() preizkusili, ali je niz 'hello' vrednost NULL. Ker podana vrednost ni ničelna, bo funkcija vrnila niz »zdravo«.

Primer 2

Razmislite o drugem primeru, prikazanem spodaj:

izberite lvl ( nič, 'svet' ) iz dvojine;

Ker je v tem primeru prvi izraz vrednost NULL, bo poizvedba vrnila drugi niz, kot je prikazano spodaj:

Primer 3

Uporabimo lahko tudi funkcijo NVL() za zamenjavo vrednosti NULl v tabeli zbirke podatkov. Razmislite o spodnji tabeli zaposlenih:

izberite FIRST_NAME, LAST_NAME, EMAIL, PLAČA, COMMISSION_PCT od EMPLOYEES emp;

Končna tabela:

Kot lahko vidimo, stolpec promission_pct vsebuje vrednosti NULl. Ustvarimo lahko poizvedbo za zamenjavo vrednosti NULL iz stolpca Commission_pct z 0, kot je prikazano v spodnjem primeru:

izberite FIRST_NAME, LAST_NAME, EMAIL, PLAČA, nvl ( COMMISSION_PCT, 0 )
od ZAPOSLENI emp;

V prejšnjem primeru poizvedbe uporabimo funkcijo NVL(), da preizkusimo vrednost v stolpcu promission_pct za NULL. Če obstaja vrednost NULL, vrnemo 0. V nasprotnem primeru vrnemo prvotno vrednost.

To bi nam moralo omogočiti zamenjavo vrednosti NULL v stolpcu z 0, kot je prikazano v spodnji tabeli:

To lahko uporabimo s stavkom UPDATE ali shranimo dobljeno vrednost v pogledu tabele.

Zaključek

V tej vadnici ste se naučili, kako uporabiti funkcijo Oracle NVL() za zamenjavo vrednosti NULL s privzetimi vrednostmi. Dobro je upoštevati, da čeprav je funkcija NVL() zelo podobna funkciji COALESCE(), lahko funkcija NVL() vrne samo eno vrednost. Hkrati lahko funkcija coalesce() vrne več vrednosti.

Če iščete funkcijo, ki lahko sprejme več kot dva argumenta brez uporabe funkcije coalesce(), razmislite o funkciji NVL2().