Open xxleyi opened 4 years ago
大多数编程语言都是基于二值逻辑,即逻辑值只有真和假两个。而 SQL 语言则采用了一种特别的逻辑体系--三值逻辑,即逻辑真值除了真和假,还有第三个值:不确定。
true, unknown, false three-valued logic
这造成的直接结果是:
is null
is not null
unknown
= v or <> v or is null
v = 3 or v <> 3
true
and 运算:true < unknown < false or 运算:true > unknown > false not 运算:not true is false, not false is true, not unknown is unknown
true < unknown < false
true > unknown > false
not true is false, not false is true, not unknown is unknown
大多数编程语言都是基于二值逻辑,即逻辑值只有真和假两个。而 SQL 语言则采用了一种特别的逻辑体系--三值逻辑,即逻辑真值除了真和假,还有第三个值:不确定。
true, unknown, false three-valued logic
这造成的直接结果是:
is null
oris not null
unknown
= v or <> v or is null
,再明确一些就是v = 3 or v <> 3
的结果不是必然为true
,还可能为unknown
and 运算:
true < unknown < false
or 运算:true > unknown > false
not 运算:not true is false, not false is true, not unknown is unknown