sql >> Databasteknik >  >> RDS >> Oracle

Hur man använder NVL()-funktionen i Oracle

Denna Oracle SQL-handledning ger förklaringar, exempel för NVL-funktion i Oracle

Vad är NVL()-funktionen i Oracle

NVL-funktionen i Oracle är en kapslingsfunktion som används för att ersätta nollvärden med vissa värden

I ovanstående syntax

expr1 :det är källvärdena eller uttrycket som kan innehålla null. Du kan ange kolumnnamn, funktion på kolumnnamnet
expr2:Det är målvärdet som kommer att placeras om null returneras från expr1

Om expr1 är null, returnerar NVL expr2. Om expr1 inte är null, returnerar NVL expr1.

Viktigt att notera
(1) Argumenten expr1 och expr2 kan ha vilken datatyp som helst. Om deras datatyper är olika, konverterar Oracle Database implicit den ena till den andra. Om de inte kan konverteras implicit returnerar databasen ett fel.
Om expr1 är teckendata konverterar Oracle Database expr2 till datatypen expr1 innan de jämförs och returnerar VARCHAR2 i teckenuppsättningen expr1.

Om expr1 är numerisk bestämmer Oracle vilket argument som har högst numerisk prioritet, konverterar implicit det andra argumentet till den datatypen och returnerar den datatypen.

Så följande uttalande skulle lyckas

välj nvl(num-kol ,10) från välj nvl(char-col ,'NA') från 
välj nvl(slutdatum,'01-MAY-18') från

Följande påstående skulle göra implicit konvertering

välj nvl(char-col ,1) från 

Följande påstående skulle misslyckas

välj nvl(end_date,'m/a') från 
välj nvl(user_id,'abc') från

Hur man använder NVL()-funktionen


Denna funktion är mycket användbar där vi inte vill returnera nollvärden eller i den numeriska beräkningen eftersom null skulle göra hela värden till noll

Låt oss ta ett exempel för att förstå det
Vi har en tabell för säljare som innehåller säljarnas försäljningar, provisionsprocent på försäljningen, folkets lön. Vi vill räkna ut de totala månadsinkomsterna för säljarna. Försäljning kan ha nollvärden

Uttalandet skulle vara

välj namn,(lön + försäljning*kommission/100)  Månadsinkomst från säljare;

Det kommer att returnera nollvärden för alla personer som inte har gjort någon försäljning under den perioden eftersom beräkningen kommer att ha nollvärden

Detta kan fixas genom att använda nvl-funktionen som

välj namn,(lön + nvl(försäljning,0)*kommission/100) Månatlig_inkomst från säljare;

Så det är helt klart till stor hjälp när du gör matematiska operationer. NVL-funktion i Oracle är en ganska användbar funktion och den kan användas på många ställen

Läser också
oracle sql-datumfunktioner
NULLIF-funktion i Oracle
Uppdatera uttalande i oracle
Coalesce-funktion i Oracle
ändra datumformat i oracle
https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions105.htm


  1. HQL är null och !=null på en Oracle-kolumn

  2. SQL Server 2017 Management Tools

  3. Infoga en lista<> i SQL Server-tabellen

  4. Skapa en SQL Server-databas med SQLOPS