我理解在SQL语言中(至少在Oracle Database 12c中,我熟悉的RDBMS),布尔表达式可以计算为true,false或NULL。我理解表达式何时可以求值为true或false,但我无法理解表达式如何计算为NULL。
请解释或提供一个证明这一点的例子。
答案 0 :(得分:1)
我最近发现了NULL
值的精彩介绍:
http://modern-sql.com/concept/three-valued-logic
一些引言:
SQL null值基本上意味着“可以是任何东西”。因此无法判断与null的比较是真还是假。
...
以下每项比较的结果都是未知的:
NULL = 1 NULL <> 1 NULL > 1 NULL = NULL
...
另一种看待它的方法是通过调用random()函数来精神上替换每个null。