at vide, hvornår du skal bruge S .l COALESCE-funktionen, er en livredder, når du har at gøre med NULL.
som du ved, er NULL et vanskeligt koncept, og det ser ud til, at NULL “berører” i et udtryk, det gør resultatet NULL. Så når du har at gøre med NULL, hvordan kan du bryde ud af cyklen? Det vil sige, Hvordan kan du vise en anden værdi i stedet?
det er her s .l COALESCE kommer i spil. Med denne funktion kan du teste for NULL, og når den er til stede, erstatte NULL for en anden værdi.
Hvad er COALESCE?,
COALESCE er en indbygget s .lserver-funktion. Brug COALESCE, når du skal erstatte en NULL med en anden værdi. Det tager form:
COALESCE(value1, value2, ..., valuen)
det returnerer den første IKKE NULL fra værdilisten.
Overvej baseball parker fra Lahmans Baseball Database., Hvis vi ønsker at vise den parkname i stedet for parkalias, som kan være null, hånd i hånd fungerer godt her:
I dette eksempel GÅR hånd i hånd(parkalias, parkname) returnerer værdien fundet i parkalias hvis værdien ikke er NULL; men hvis det er NULL, så parkname er vendt tilbage.
hvilken s ?l ville du skrive, hvis du ville vise ‘ukendt’, hvis parkalias er NULL?, Hvorfor ikke prøve at skrive forespørgslen… her er en start…
sammenligning af S ?l COALESCE til sag
vidste du, at s ?l COALESCE er en genvej til SAGSOPGØRELSEN?
overvej tabelundersøgelsen, som har kolonnerne ans .erid, option1, option2, option3.
Vi vil liste indstillingen ans .erid og first non NULL.
fra det, vi har lært, kan vi bruge COALESCE som:
SELECT answerID,
COALESCE(option1, option2, option3, 'No Option Selected')
FROM survey
Dette er en genvej til denne SAGSERKLÆRING:
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
sag bruges under flere omstændigheder, men når du udskifter nul, er COALESCE en praktisk genvej!,
for posten har s .l Server mange flere interessante funktioner at lære og udforske. Hvis du ikke allerede har gjort det, skal du tjekke disse strengfunktioner for at manipulere tekstdata!