sql >> Database teknologi >  >> RDS >> Oracle

Sådan bruges NVL()-funktionen i Oracle

Denne Oracle SQL-tutorial giver forklaringer, eksempler på NVL-funktion i Oracle

Hvad er NVL()-funktionen i Oracle

NVL-funktion i Oracle er en indlejringsfunktion, der bruges til at erstatte nulværdier med bestemte værdier

I ovenstående syntaks

udtr1 :det er kildeværdierne eller udtrykket, der kan indeholde null. Du kan angive kolonnenavn, funktion på kolonnenavnet
expr2:Det er målværdien, der vil blive placeret i tilfælde af, at null returneres fra expr1

Hvis udtr1 er null, returnerer NVL udtr2. Hvis udtr1 ikke er null, returnerer NVL udtr1.

Vigtige punkter at bemærke
(1) Argumenterne expr1 og expr2 kan have enhver datatype. Hvis deres datatyper er forskellige, konverterer Oracle Database implicit den ene til den anden. Hvis de ikke kan konverteres implicit, returnerer databasen en fejl.
Hvis expr1 er tegndata, så konverterer Oracle Database expr2 til datatypen for expr1 før de sammenlignes og returnerer VARCHAR2 i tegnsættet af expr1.

Hvis expr1 er numerisk, så bestemmer Oracle, hvilket argument der har den højeste numeriske forrang, konverterer implicit det andet argument til den datatype og returnerer den datatype.

Så følgende udtalelse ville lykkes

vælg nvl(num-col ,10) fra vælg nvl(char-col ,'NA') fra 
vælg nvl(end_date,'01-MAY-18') fra

Følgende erklæring ville udføre implicit konvertering

vælg nvl(char-col ,1) fra 

Følgende erklæring ville mislykkes

vælg nvl(end_date,'m/a') fra 
vælg nvl(user_id,'abc') fra

Sådan bruges NVL()-funktionen


Denne funktion er meget nyttig, hvor vi ikke ønsker at returnere null-værdier eller i den numeriske beregning, da null ville gøre hele værdier til null

Lad os tag et eksempel for at forstå det
Vi har en sales_people-tabel, som indeholder salg udført af sælgere, provision % af salget, folks løn. Vi ønsker at beregne den samlede månedlige indkomst for sælgerne. Salg kan have nulværdier

Erklæring ville være

vælg navn,(løn + salg*kommission/100)  Månedlig_indkomst fra sælgere;

Det vil returnere nulværdier for alle de personer, der ikke har solgt noget i den periode, da beregningen vil have nulværdier

Dette kan rettes ved at bruge nvl-funktionen som

vælg navn,(løn + nvl(salg,0)*kommission/100) Månedlig_indkomst fra sælgere;

Så det er klart meget nyttigt, mens du laver matematiske operationer. NVL-funktion i Oracle er en ganske nyttig funktion, og den kan bruges mange steder

Læser også
oracle sql-datofunktioner
NULLIF-funktion i Oracle
Opdater sætning i oracle
Coalesce-funktion i Oracle
ændre datoformat i oracle
https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions105.htm


  1. Sådan installeres MariaDB 10 på RHEL 8

  2. Sådan oprettes VARRAY'er som databaseobjekt i Oracle-databasen

  3. Hvordan implementeres Oracles JDBC-forespørgselstimeout?

  4. Tips til brug af SQL Server med Salesforce SOQL