? 普通语言的布尔型只有true和false两个值,这种逻辑体系被称为二值逻辑。而SQL语言里,还有第三个值unknown,因此这种逻辑体系被称作三值逻辑。
? 最主要的原因就在于NULL值,因为NULL有两种含义,一种是不确定(unknown),另一种是不适用。
? 条件筛选语句中必须使用IS NULL,如果使用比较谓词= NULL,得到的结果总是unknown。NULL既不是值,也不是变量,只是一个表示“没有值”的标记,而比较谓词只适用于值。
? 这里所说的unknown与NULL中的unknown不同。前者是明确的布尔型的真值,而后者既不是值也不是变量。
$AND的情况:false > unknown > true\OR的情况:true>unknown>false$
原文:https://www.cnblogs.com/enmac/p/13110925.html