我在一个视图中找到了这段 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 合并而不是直接选择列? 我忍不住笑了起来,把它写成一个菜鸟的错误,但这让我想知道是否有一些我不知道的“边缘案例”。