weten wanneer de SQL COALESCE functie te gebruiken is een levensredder wanneer je te maken hebt met NULL.
zoals u weet, NULL is een lastig concept, en het lijkt wat ooit NULL “raakt” in een uitdrukking, het maakt het resultaat NULL. Dus, als je te maken hebt met NULL, hoe kun je breken uit de cyclus? Dat wil zeggen, hoe kun je in plaats daarvan een andere waarde weer te geven?
Dit is waar SQL COALESCE in het spel komt. Met deze functie kunt u testen op NULL, en indien aanwezig, vervang NULL voor een andere waarde.
Wat is COALESCE?,
COALESCE is een ingebouwde Sqlserverfunctie. Gebruik COALESCE wanneer u een NULL moet vervangen door een andere waarde. Het neemt de vorm aan:
COALESCE(value1, value2, ..., valuen)
Het retourneert de eerste niet-NULL uit de waardelijst.
overweeg de honkbalparken van Lahmans Baseball Database., Als we willen weer de parkname in plaats van de parkalias, die kan null zijn, SAMENVALLEN werkt goed hier:
In dit voorbeeld SAMENVALLEN(parkalias, parkname) geeft als resultaat de gevonden waarde in parkalias als de waarde niet nul is; echter, als het leeg is, dan parkname is geretourneerd.
welke SQL zou u schrijven als u ‘Unknown’ wilt weergeven als de parkalias NULL is?, Waarom niet proberen om de query te schrijven…hier is een begin …
vergelijken SQL COALESCE met CASE
wist u dat SQL COALESCE een sneltoets is voor het CASE statement?
overweeg de tabelenquête, die de kolommen answerID, option1, option2, option3 bevat.
we willen een lijst van de answerID en eerste niet-NULL optie.
van wat we geleerd hebben kunnen we COALESCE gebruiken als:
SELECT answerID,
COALESCE(option1, option2, option3, 'No Option Selected')
FROM survey
Dit is een sneltoets voor deze CASE statement:
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
CASE wordt gebruikt in meer omstandigheden, maar bij het vervangen van NULL, COALESCE is een handige sneltoets!,
voor de goede orde, SQL Server heeft nog veel meer interessante functies om te leren en te verkennen. Als je dit nog niet hebt gedaan, bekijk dan deze string functies om tekstgegevens te manipuleren!