是否可以进行完全联接并将“倾倒”的 NULL 值更改为其他值(例如将所有这些NULL 更改为 1)?目的是能够区分从基表返回的 NULL 值和从外连接返回的 NULL 值。
谢谢
是否可以进行完全联接并将“倾倒”的 NULL 值更改为其他值(例如将所有这些NULL 更改为 1)?目的是能够区分从基表返回的 NULL 值和从外连接返回的 NULL 值。
谢谢
也许这会奏效。您比较您加入的列。检查一张表是否为空,另一张表是否为空。如果是这样,那么它来自连接。我确定我忽略了一些场景,但它在这个小例子中有效。
说你有
A FULL OUTER JOIN B ON A.FK = B.ID
如果 B 的 ID 为 null,则您知道由于外连接,该行全为 null。如果 B 的 ID 不为 null,则 B 中的所有 null 都是实际值。
通过对称性,从 B 到 A 也是如此。
只需将密钥(A.FK 和 B.ID)保留在 SELECT 中,您将拥有辨别这两种情况所需的信息。否则,请查看 COALESCE(),这是您要求的,但不是您需要的。