当ANSI_NULL设置为ON:当ANSI_NULL设置为ON时,为什么ISO标准为NULL?
SELECT 1 WHERE NULL = NULL返回行
和SELECT 1 WHERE NULL IS NULL返回一行
我理解的原因以上查询返回他们返回的内容。但我很想知道为什么规则如此。为什么根据ISO标准,NULL = NULL是UNKNOWN而不是TRUE?为什么'NULL = NULL给TRUE'不被视为ISO标准?是否因为NULL值没有数据类型?或者其他原因。我认为一定有一些原因。
'NULL'真正意味着“未知',你无法判断某个未知事物是否与其他未知事物相同。 – HoneyBadger
NULL表示我们不知道的东西。所以我们不能用'='来比较一个未知值与另一个值。我们只能说'IS NULL' –