我在视图中找到了以下SQL代码段,但我对它的目的感到困惑(为简化起见,实际的SQL简称为“ SQL”):
SELECT COALESCE(b.Foo, NULL) AS Foo FROM a LEFT JOIN b ON b.aId=a.Id
我无法想到使用null合并的目的的单一原因,而不仅仅是这样做:
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合并,而不仅仅是直接选择该列? 我忍不住笑着把它当作菜鸟的错误而写下来,但这让我想知道是否存在一些我不知道的“附带条件”。
您是对的-没有理由使用:
SELECT COALESCE(b.Foo, NULL)
…因为如果b.foo为NULL,则最好使用:
b.foo
SELECT b.foo
…假设您 想 知道该值是否为null。