SQL COALESCE funktion och NULL

att veta när du ska använda SQL COALESCE funktionen är en livräddare när du har att göra med NULL.

som du vet är NULL ett knepigt koncept, och det verkar som om det någonsin NULL ”berör” i ett uttryck, det gör resultatet NULL. Så, när du har att göra med NULL, hur kan du bryta sig ur cykeln? Det är, hur kan du visa ett annat värde istället?

det är här SQL COALESCE kommer in i bilden. Med den här funktionen kan du testa för NULL, och när du är närvarande, ersätt NULL för ett annat värde.

Vad är COALESCE?,

SAMMANSMÄLTA är en inbyggd SQLServer Funktion. Använd KOALESCE när du behöver byta ut en NULL med ett annat värde. Det tar formen:

COALESCE(value1, value2, ..., valuen)

det returnerar den första icke NULL från värdelistan.

överväga baseball Parker från Lahmans Baseball databas., Om vi vill visa parknamnet i stället för parkalias, som kan vara null, fungerar COALESCE bra här:

välj COALESCE(parkalias, parkname) som ParkAlias, city, stateFROM Parks
-- AnswerSELECT COALESCE(parkalias, parkname) as ParkAlias, city, stateFROM Parks

i det här exemplet samlar(parkalias, parkname) tillbaka värdet som finns i parkalias om värdet inte är null; men om det är null, då parkname returneras.

vad SQL skulle du skriva om du ville visa ”okänd” om parkalias är NULL?, Varför inte försöka skriva frågan… här är en start…

jämföra SQL COALESCE till CASE

visste du att SQL COALESCE är en genväg för KUNDCASESATSEN?

överväg tabellundersökningen, som har kolumnerna answerID, option1, option2, option3.

vi vill lista answerID och första icke NULL alternativet.

Från vad vi har lärt oss kan vi använda COALESCE som:

SELECT answerID,
COALESCE(option1, option2, option3, 'No Option Selected')
FROM survey

detta är en genväg för detta fall uttalande:

SELECT answerID,
CASE
WHEN option1 is not NULL then option1
WHEN option2 is not NULL then option2
WHEN option3 is not NULL then option3
ELSE 'No Option Selected'
END
FROM survey

fallet används i fler omständigheter, men när du byter NULL, är COALESCE en praktisk genväg!,

för posten har SQL Server många fler intressanta funktioner att lära sig och utforska. Om du inte redan har gjort det, kolla in dessa strängfunktioner för att manipulera textdata!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Hoppa till verktygsfältet