SQL Server isNull -funksjonen

SQL Server isNull -funksjonen

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:

  1. Uttrykk - Dette spesifiserer uttrykket som skal evalueres for en nullverdi.
  2. erstatte_value - Dette spesifiserer verdien som skal returneres hvis uttrykket i det første argumentet blir evaluert som null.

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);
Erklære @replacement varchar (25);
Set @ekspression = null;
Set @replacement = 'streng';
Velg ISNull (@ekspression, @replacement);

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.

Gjennomsnittspris
---------------------
548.3333

ISNULL 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.