在 SQL 的 Wikipedia 页面上,有一些关于 SQL 中布尔逻辑的真值表。[1] 维基百科页面似乎源自 SQL:2003 标准。
等号运算符 (=) 的真值表与 SQL:2003 草案中的 IS 运算符不同。
此外,维基百科文章指出“IS NULL”(<null predicate>)是一种特殊情况。
在 SQL:2003 中似乎有一个“IS”运算符,它是一个常规运算符,如 AND、NOT 和 OR。但是,<null 谓词> 仍然存在。
当 IS 是常规布尔运算符时,为什么会有 <null 谓词>?是否确保您可以在没有类型强制的情况下使用具有非布尔值的“IS NULL”构造?是否不鼓励使用“=NULL”?
SQL:2011 标准的工作方式是否不同?
[1]:关于 SQL 的维基百科
[2]:SQL:2011 草稿PDF 第 335 页
[3]:SQL:2003 草稿 PDF 第 397 页