En nullverdi i SQL Server refererer til en kolonne hvis verdi mangler eller er ukjent. Når du jobber med databaser, vil du ofte møte nullverdier, noe som gjør dataene vanskelige å fungere. Du kan løse dette ved å fjerne nullverdiene eller erstatte dem med en spesifikk verdi.
Denne artikkelen vil dekke en innebygd funksjon i SQL Server som lar deg erstatte nullverdier med en fast verdi.
Grunnleggende bruk
SQL Server isNull -funksjonen returnerer en spesifisert verdi hvis et uttrykk er en nullverdi eller returnerer uttrykket ellers.
Følgende utdrag viser syntaks for ISNULL -funksjonen.
isNull (uttrykk, erstatning_value);Funksjonen tar to argumenter:
Funksjonen konverterer datatypen til erstatningsverdien til datatypen til uttrykket hvis de er av forskjellige typer. Sørg derfor for at typen erstatnings_verdi kan konverteres til uttrykkets type.
SQL Server isNull () eksempler
La oss se på noen eksempler på hvordan vi bruker ISNULL -funksjonen.
Eksempel 1:
Eksemplet nedenfor bruker ISNULL () -funksjonen for å returnere et argument hvis det oppgitte uttrykket er null.
Velg ISNull (NULL, 'NOT NULL');Spørringen ovenfor skal returnere strengen 'Not Null', da det første argumentet er en nullverdi.
Eksempel 2:
Som tidligere nevnt, returnerer ISNULL -funksjonen erstatningsverdien hvis uttrykket er null. Imidlertid, hvis ikke null, returnerer funksjonen verdien av uttrykket.
Tenk på eksemplet som er vist nedenfor:
Velg ISNull (100, 200);Spørringen skal returnere verdien av uttrykket, i dette tilfellet, 100, ettersom det ikke evalueres til en nullverdi.
Eksempel 3:
Du kan også bruke ISNULL -funksjonen med variabler. Tenk på eksemplet SQL -setningen vist nedenfor:
Erklære @ekspression varchar (50);I dette eksemplet skal koden over returnere verdien som er lagret av @Replacement -variabelen.
Eksempel 4:
Vi kan også bruke ISNULL -funksjonen til å erstatte nullverdier i en tabell. Dette kan være nyttig når du trenger å utføre oppdateringer til en tabell uten å gjøre endringene permanente i databasen.
Tenk for eksempel kundens tabell fra eksempler SalesDB. Den inneholder nullverdier i den mellominitielle kolonnen.
Velg topp 10 * fra kunder;Vi kan erstatte nullverdiene med N/A ved å bruke ISNULL -funksjonen, som vist i eksempelkoden nedenfor:
Velg Topp 10 FirstName, ISNull (MiddleInitial, 'N/A') som initial, etternavn fra kunder;Spørringen skal returnere postene der verdien av den midtinitiale kolonnen erstattes med strengen “N \ A”.
Et eksempelutgang er som vist:
Eksempel 5:
ISNULL -funksjonen kommer i hånden når du trenger å utføre operasjoner som et gjennomsnitt for et sett med verdier.
For eksempel kan vi bruke ISNULL -funksjonen til å erstatte nullverdier med 0 og utføre et gjennomsnitt.
Tenk på eksemplet nedenfor:
Velg AVG (ISNull (Price, 0)) som gjennomsnittlig_price fra produkter;Eksemplet ovenfor skal returnere gjennomsnittet av alle verdiene i priskolonnen i databasen. Funksjonen skal erstatte alle nullverdiene i kolonnen med en 0, slik at du kan utføre nesten nøyaktige beregninger.
GjennomsnittsprisISNULL VS. Er null
I SQL Server er det en funksjon som heter IS NULL. I motsetning til ISNULL () -funksjonen, avgjør den om et uttrykk er null. Dette betyr at den returnerer en boolsk verdi i stedet for et uttrykk.
Eksemplet nedenfor viser bruken av IS NULL -setningen i SQL Server.
Velg topp 10 * fra kunder der mellominitial er null;Siden IS NULL -setningen returnerer en boolsk verdi, bruker SQL -serveren den for å hente alle radene der tilstanden er sann.
Et eksempelresultat er som:
Konklusjon
I denne guiden forsto du hvordan du jobber med SQL Server ISNull () -funksjonen for å evaluere og erstatte et nulluttrykk.