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