Oracle NVL funkcija

Oracle Nvl Funkcija



Nulta vrijednost je polje koje je ostavljeno prazno ili nema dodijeljenu vrijednost.

NULL vrijednosti uobičajene su u bazama podataka, osobito pri uvozu vanjskih podataka. Stoga, osim ako stupac ne sadrži ograničenje za sprječavanje NULL vrijednosti, motor baze podataka će vjerojatno koristiti NULL vrijednost za vrijednost koja nedostaje.







Iako su NULL vrijednosti uobičajene, one mogu dovesti do problema s bazom podataka jer baza podataka nema vrijednost s kojom bi se radilo. Stoga je dobra praksa primijeniti radnje za rukovanje NULL vrijednostima u vašim upitima.



U ovom ćemo postu naučiti kako pretvoriti NULL vrijednosti u danoj tablici da sadrže zadanu vrijednost za koju je manje vjerojatno da će uzrokovati pogreške u radu u vašoj bazi podataka.



Oracle NVL funkcija

Kao što je spomenuto, ova nam funkcija omogućuje zamjenu NULL vrijednosti smislenijim vrijednostima. Sintaksa funkcije navedena je u nastavku:





NVL ( izraz1, izraz2 ) ;

Funkcija prihvaća dva glavna argumenta:

izraz1 i izraz2 – ovaj parametar definira vrijednost koja se testira za NULL vrijednosti. Ako je vrijednost izraza1 NULL, funkcija će vratiti vrijednost izraza2.



Oba izraza mogu imati slične ili različite tipove podataka. Ako se odgovarajući tipovi podataka razlikuju, motor baze podataka može izvesti implicitnu konverziju kako bi omogućio kompatibilnost s tipovima podataka. Ako je nemoguće pretvoriti odgovarajuće tipove podataka, motor baze podataka izbacit će pogrešku.

Primjer upotrebe Oracle NVL() funkcije

Sljedeći primjer pokazuje osnovnu upotrebu funkcije NVL():

Primjer 1

Razmotrite sljedeći primjer:

Odaberi lvl ( 'zdravo' , 'svijet' ) od dualnog;

U prethodnom primjeru koristimo funkciju NVL() da testiramo je li niz 'hello' NULL vrijednost. Budući da navedena vrijednost nije null, funkcija će vratiti niz 'hello'.

Primjer 2

Razmotrite drugi primjer prikazan u nastavku:

Odaberi lvl ( nula, 'svijet' ) od dualnog;

U ovom slučaju, budući da je prvi izraz NULL vrijednost, upit će vratiti drugi niz kao što je prikazano u nastavku:

Primjer 3

Također možemo koristiti funkciju NVL() za zamjenu NULl vrijednosti u tablici baze podataka. Razmotrite tablicu zaposlenika prikazanu u nastavku:

Odaberi FIRST_NAME, LAST_NAME, EMAIL, PLAĆA, COMMISSION_PCT od EMPLOYEES emp;

Rezultirajuća tablica:

Kao što vidimo, stupac Commission_pct sadrži NULl vrijednosti. Možemo izraditi upit za zamjenu NULL vrijednosti iz stupca Commission_pct s 0, kao što je prikazano u primjeru u nastavku:

Odaberi FIRST_NAME, LAST_NAME, EMAIL, PLAĆA, nvl ( COMMISSION_PCT, 0 )
od ZAPOSLENICI emp;

U prethodnom primjeru upita koristimo se funkcijom NVL() za testiranje vrijednosti u stupcu promission_pct za NULL. Ako postoji vrijednost NULL, vraćamo 0. U suprotnom, vraćamo izvornu vrijednost.

To bi nam trebalo omogućiti da zamijenimo NULL vrijednosti u stupcu s 0, kao što je prikazano u rezultirajućoj tablici u nastavku:

To možemo koristiti s naredbom UPDATE ili pohraniti dobivenu vrijednost u prikaz tablice.

Zaključak

U ovom vodiču ste naučili kako koristiti Oracle NVL() funkciju za zamjenu NULL vrijednosti zadanim vrijednostima. Dobro je imati na umu da iako funkcija NVL() vrlo nalikuje funkciji COALESCE(), funkcija NVL() može vratiti samo jednu vrijednost. U isto vrijeme, funkcija coalesce() može vratiti više vrijednosti.

Ako tražite funkciju koja može uzeti više od dva argumenta bez korištenja funkcije coalesce(), razmislite o funkciji NVL2().