Oracle NVL -toiminto

Oracle Nvl Toiminto



Nolla-arvo on kenttä, joka on jätetty tyhjäksi tai sille ei ole määritetty arvoa.

NULL-arvot ovat yleisiä tietokannoissa, varsinkin kun tuodaan ulkoisia tietoja. Siksi, ellei sarake sisällä rajoitusta NULL-arvojen estämiseksi, tietokantakone käyttää todennäköisesti NULL-arvoa puuttuvan arvon kohdalla.







Vaikka NULL-arvot ovat yleisiä, ne voivat johtaa tietokantaongelmiin, koska tietokannalla ei ole arvoa työskenneltäväksi. Siksi on hyvä käytäntö soveltaa toimintoja NULL-arvojen käsittelemiseen kyselyissäsi.



Tässä viestissä opimme muuttamaan NULL-arvot tietyssä taulukossa sisältämään oletusarvon, joka ei todennäköisesti aiheuta toimintavirheitä tietokannassasi.



Oracle NVL -toiminto

Kuten mainittiin, tämän toiminnon avulla voimme korvata NULL-arvot merkityksellisemmillä arvoilla. Toiminnon syntaksi on annettu alla:





NVL ( Laus1, Laus2 ) ;

Funktio hyväksyy kaksi pääargumenttia:

Laus1 ja Laus2 – Tämä parametri määrittää arvon, joka testataan NULL-arvoille. Jos laus1:n arvo on NULL, funktio palauttaa lausekkeen 2 arvon.



Molemmilla lausekkeilla voi olla samanlaisia ​​tai erilaisia ​​tietotyyppejä. Jos vastaavat tietotyypit eroavat, tietokantakone voi suorittaa implisiittisen muunnoksen mahdollistaakseen yhteensopivuuden tietotyyppien kanssa. Jos vastaavien tietotyyppien muuntaminen on mahdotonta, tietokantamoottori antaa virheen.

Oracle NVL() -funktion käyttöesimerkki

Seuraava esimerkki havainnollistaa NVL()-funktion peruskäyttöä:

Esimerkki 1

Harkitse seuraavaa esimerkkiä:

valitse lvl ( 'Hei' , 'maailman' ) dual;

Edellisessä esimerkissä käytämme NVL()-funktiota testataksemme, onko merkkijono 'hello' NULL-arvo. Koska annettu arvo ei ole nolla, funktio palauttaa merkkijonon 'hello'.

Esimerkki 2

Harkitse alla olevaa toista esimerkkiä:

valitse lvl ( tyhjä, 'maailman' ) dual;

Tässä tapauksessa, koska ensimmäinen lauseke on NULL-arvo, kysely palauttaa toisen merkkijonon alla olevan kuvan mukaisesti:

Esimerkki 3

Voimme myös käyttää NVL()-funktiota korvaamaan NULl-arvot tietokantataulukossa. Harkitse alla olevaa työntekijöiden taulukkoa:

valitse FIRST_NAME, LAST_NAME, EMAIL, PALKKA, COMMISSION_PCT EMPLOYEES emp;

Tuloksena oleva taulukko:

Kuten näemme, Commission_pct-sarake sisältää NULl-arvot. Voimme luoda kyselyn korvataksemme Commission_pct-sarakkeen NULL-arvot nollalla, kuten alla olevassa esimerkissä näkyy:

valitse FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( COMMISSION_PCT, 0 )
alkaen EMPLOYEES emp;

Edellisessä esimerkkikyselyssä testaamme NVL()-funktiota Commission_pct -sarakkeen arvoa NULL-arvoille. Jos arvo on NULL, palautetaan 0. Muussa tapauksessa palautetaan alkuperäinen arvo.

Tämän pitäisi antaa meille mahdollisuus korvata sarakkeen NULL-arvot 0:lla alla olevan taulukon mukaisesti:

Voimme käyttää tätä UPDATE-käskyn kanssa tai tallentaa tuloksena olevan arvon taulukkonäkymään.

Johtopäätös

Tässä opetusohjelmassa opit käyttämään Oraclen NVL()-funktiota NULL-arvojen korvaamiseen oletusarvoilla. On hyvä pitää mielessä, että vaikka NVL()-funktio muistuttaa läheisesti COALESCE()-funktiota, NVL()-funktio voi palauttaa vain yhden arvon. Samanaikaisesti coalesce()-funktio voi palauttaa useita arvoja.

Jos etsit funktiota, joka voi ottaa enemmän kuin kaksi argumenttia ilman coalesce()-funktiota, harkitse NVL2()-funktiota.