我对以下推理感到困惑:
SELECT * FROM table WHERE avalue is null
返回 'avalue' 为空的 x 行数
SELECT * FROM table WHERE avalue <> true
不返回“avalue”为空的行。
我的推理(这似乎是不正确的)是null
唯一值(它甚至不等于null
)意味着它应该显示在结果集中,因为它不等于true
任何一个。
我猜你可能会说column <> value
你暗示该列有一个值,因此null
完全忽略了这些值。
这背后的原因是什么,这在其他常见的 SQL DB 中是否相同?
我的推理(假设)告诉我这是违反直觉的,我想知道为什么。