gpt4 book ai didi

sql - 标准 SQL bool 运算符 IS 与等于 (=) 运算符

转载 作者:行者123 更新时间:2023-12-03 12:52:31 28 4
gpt4 key购买 nike

在 SQL 的维基百科页面上,有一些关于 SQL 中 bool 逻辑的真值表。 [1] 维基百科页面似乎来源于 SQL:2003 标准。

等号运算符 (=) 的真值表与 SQL:2003 草案中的 IS 运算符不同。

此外,维基百科文章指出“IS NULL”( )是一种特殊情况。

在 SQL:2003 中,似乎有一个“IS”操作符,它是一个像 AND、NOT 和 OR 这样的常规操作符。但是, 仍然存在。

当 IS 是常规 bool 运算符时,为什么 存在?是否要确保您可以在没有类型强制的情况下使用具有非 bool 值的“IS NULL”构造?不鼓励使用“=NULL”吗?

SQL:2011 标准的工作方式不同吗?

[1]: Wikipedia on SQL

[2]: SQL:2011 draft PDF 第 335 页

[3]: SQL:2003 draft PDF 第 397 页

最佳答案

这对我来说是一个新的。

如果我没看错 <boolean value expression>语法定义了三个仅用于 boolean 的谓词数据类型 IS TRUE , IS FALSE , IS UNKNOWN .

它们与它们的相等对应物的不同之处在于它们的计算结果为 TrueFalse .绝不要Unknown .即 UNKNOWN = TRUE将评估为 UNKNOWN但是 UNKNOWN IS TRUE计算结果为 False .
IS 的完整真值表和 =在下面。

+---------+-------+-------+---------+
| IS | TRUE | FALSE | UNKNOWN |
+---------+-------+-------+---------+
| TRUE | TRUE | FALSE | FALSE |
| FALSE | FALSE | TRUE | FALSE |
| UNKNOWN | FALSE | FALSE | TRUE |
+---------+-------+-------+---------+


+---------+---------+---------+---------+
| = | TRUE | FALSE | UNKNOWN |
+---------+---------+---------+---------+
| TRUE | TRUE | FALSE | UNKNOWN |
| FALSE | FALSE | TRUE | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
+---------+---------+---------+---------+

关于sql - 标准 SQL bool 运算符 IS 与等于 (=) 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822154/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com