Я нашел этот фрагмент SQL в представлении, и я довольно озадачен его целью (фактический SQL сокращен для краткости):
SELECT
COALESCE(b.Foo, NULL) AS Foo
FROM a
LEFT JOIN b ON b.aId=a.Id
Я не могу придумать ни одной причины для цели объединения с нулем вместо того, чтобы просто делать это:
SELECT
b.Foo AS Foo
FROM a
LEFT JOIN b ON b.aId=a.Id
Или, по крайней мере, не указывать NULL явно:
SELECT
COALESCE(b.Foo) AS Foo
FROM a
LEFT JOIN b ON b.aId=a.Id
Я не знаю, кто автор этого (поэтому я не могу спросить), когда он был автором, или для какой конкретной версии MS SQL Server он был написан для (до 2008 года наверняка, хотя).
Есть ли веская причина объединиться с NULL, а не просто выбрать столбец напрямую? Я не могу не смеяться и записывать это как ошибку новобранец, но это заставляет меня задаться вопросом, есть ли какой-то "бахромой", о которой я не знаю.