标准SQL布尔运算符IS与equals(=)运算符
在SQL的维基百科页面上有一些关于SQL中布尔逻辑的真值表. [1]维基百科页面似乎源于SQL:2003标准.
等于运算符(=)的真值表与IS运算符与SQL:2003草案不同. 此外,维基百科的文章指出,“IS NULL”(< null谓词>)是一种特殊情况. 在SQL:2003中,似乎有一个“IS”opeartor,它是一个常规运算符,如AND,NOT和OR.但是,< null谓词>还在那里 为什么< null谓词>那时IS是一个常规的布尔运算符?是否确保您可以使用不带类型的非布尔值的“IS NULL”结构?是否不鼓励使用“= NULL”? SQL:2011标准是否有所不同? [1]:Wikipedia on SQL [2]:SQL:2011 draft PDF页面335 [3]:SQL:2003 draft PDF页397 解决方法这对我来说是一个新的.如果我正确地读取<布尔值表达式>语法定义了三个谓词,仅用于布尔数据类型IS TRUE,IS FALSE,IS 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 | +---------+---------+---------+---------+ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |