Oracle NVL-functie

Oracle Nvl Functie



Een null-waarde is een veld dat leeg is gelaten of waaraan geen waarde is toegewezen.

NULL-waarden komen veel voor in databases, vooral bij het importeren van externe gegevens. Daarom zal de database-engine, tenzij een kolom een ​​beperking bevat om NULL-waarden te voorkomen, waarschijnlijk een NULL-waarde gebruiken voor een ontbrekende waarde.







Hoewel NULL-waarden veel voorkomen, kunnen ze leiden tot databaseproblemen omdat de database geen waarde heeft om mee te werken. Het is daarom een ​​goede gewoonte om acties toe te passen om NULL-waarden in uw query's te verwerken.



In dit bericht zullen we leren hoe NULL-waarden in een bepaalde tabel kunnen worden geconverteerd om een ​​standaardwaarde te bevatten die minder snel bedieningsfouten in uw database veroorzaakt.



Oracle NVL-functie

Zoals eerder vermeld, stelt deze functie ons in staat om NULL-waarden te vervangen door meer betekenisvolle waarden. De syntaxis van de functie wordt hieronder weergegeven:





NVL ( Uitdr1, Uitdr2 ) ;

De functie accepteert twee hoofdargumenten:

expr1 en expr2 – deze parameter definieert de waarde die moet worden getest op NULL-waarden. Als de waarde van expr1 NULL is, retourneert de functie de waarde van expr2.



Beide uitdrukkingen kunnen vergelijkbare of verschillende gegevenstypen hebben. Als de overeenkomstige gegevenstypen verschillen, kan de database-engine impliciete conversie uitvoeren om compatibiliteit met de gegevenstypen mogelijk te maken. Als het onmogelijk is om de overeenkomstige gegevenstypen te converteren, geeft de database-engine een foutmelding.

Oracle NVL() Functie Voorbeeld Gebruik

Het volgende voorbeeld demonstreert het basisgebruik van de NVL()-functie:

voorbeeld 1

Beschouw het volgende voorbeeld:

selecteren niveau ( 'Hallo' , 'wereld' ) van dubbel;

In het vorige voorbeeld gebruiken we de functie NVL() om te testen of de tekenreeks ‘hallo’ een NULL-waarde is. Aangezien de opgegeven waarde niet null is, retourneert de functie de tekenreeks 'hallo'.

Voorbeeld 2

Beschouw het tweede voorbeeld hieronder:

selecteren niveau ( nul, 'wereld' ) van dubbel;

Aangezien de eerste uitdrukking in dit geval een NULL-waarde is, retourneert de query de tweede tekenreeks zoals hieronder weergegeven:

Voorbeeld 3

We kunnen ook de functie NVL() gebruiken om NUL-waarden in een databasetabel te vervangen. Bekijk de onderstaande werknemerstabel:

selecteren FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT van EMPLOYEES medewerker;

resulterende tabel:

Zoals we kunnen zien, bevat de kolom commission_pct NUL-waarden. We kunnen een query maken om de NULL-waarden uit de kolom commission_pct te vervangen door 0, zoals in het onderstaande voorbeeld:

selecteren FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( COMMISSIE_PCT, 0 )
van MEDEWERKERS werkn;

In de vorige voorbeeldquery gebruiken we de functie NVL() om de waarde in de kolom commission_pct te testen op NULL's. Als er een NULL-waarde is, retourneren we 0. Anders retourneren we de oorspronkelijke waarde.

Dit zou ons in staat moeten stellen om de NULL-waarden in de kolom te vervangen door 0, zoals weergegeven in de resulterende tabel hieronder:

We kunnen dit gebruiken met een UPDATE-instructie of de resulterende waarde opslaan in een tabelweergave.

Gevolgtrekking

In deze zelfstudie hebt u geleerd hoe u de Oracle NVL()-functie kunt gebruiken om NULL-waarden te vervangen door standaardwaarden. Houd er rekening mee dat hoewel de NVL()-functie sterk lijkt op de COALESCE()-functie, de NVL()-functie slechts één waarde kan retourneren. Tegelijkertijd kan de functie coalesce() meerdere waarden retourneren.

Als u op zoek bent naar een functie die meer dan twee argumenten aankan zonder de functie coalesce() te gebruiken, overweeg dan de NVL2()-functie.