wiedząc, kiedy używać funkcji SQL COALESCE jest ratunkiem, gdy masz do czynienia z NULL.
jak wiesz, NULL jest trudnym pojęciem i wydaje się, że to, co kiedykolwiek NULL „dotyka” w wyrażeniu, renderuje wynik NULL. Więc, kiedy masz do czynienia z NULL, jak możesz wyrwać się z cyklu? Oznacza to, że w jaki sposób możesz zamiast tego wyświetlić inną wartość?
tutaj wkracza SQL COALESCE. Za pomocą tej funkcji można sprawdzić, czy jest NULL, a gdy jest obecna, zastąpić NULL inną wartością.
Co to jest COALESCE?,
COALESCE jest wbudowaną funkcją SQLServer. Użyj COALESCE, gdy musisz zastąpić NULL inną wartością. Przyjmuje postać:
COALESCE(value1, value2, ..., valuen)
zwraca pierwszą wartość inną niż NULL z listy wartości.
Zapraszamy do zapoznania się z bazą baseballową Lahmans., Jeśli chcemy wyświetlić nazwę parku zamiast parkali, która może być null, COALESCE działa dobrze tutaj:
w tym przykładzie coalesce(parkalias, parkname) Zwraca wartość znalezioną w parkalias, jeśli wartość nie jest NULL; jednakże, jeśli jest NULL, to parkname jest zwracane.
Co byś napisał SQL, gdybyś chciał wyświetlić 'nieznany', jeśli parkalias jest NULL?, Dlaczego nie spróbować napisać zapytanie … oto początek …
porównanie SQL COALESCE do CASE
Czy wiesz, że SQL COALESCE jest skrótem do instrukcji CASE?
rozważ tabelę, która ma kolumny answerID, option1, option2, option3.
chcemy wyświetlić listę opcji answerID I first non NULL.
z tego, czego się dowiedzieliśmy, możemy użyć coalesce jako:
SELECT answerID,
COALESCE(option1, option2, option3, 'No Option Selected')
FROM survey
jest to skrót do tej instrukcji CASE:
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 jest używany w większej liczbie przypadków, ale podczas zastępowania NULL, coalesce jest przydatnym skrótem!,
dla przypomnienia, SQL Server ma o wiele więcej ciekawych funkcji do nauki i odkrywania. Jeśli jeszcze tego nie zrobiłeś, sprawdź te funkcje ciągów, aby manipulować danymi tekstowymi!