在SQL中逻辑表达式的可能值包括TRUE、FALSE和UNKNOWN。它们被称为三值逻辑。三值逻辑是SQL所特有的。大多数编程语言的逻辑表达式只有TRUE和FALSE两种值,SQL中的UNKNOWN逻辑值通常出现在包含NULL值的逻辑表达式中。NULL值通常表示丢失或者不相关的值。

UNKNOWN逻辑结果和NULL在不同的语言元素中被区别对待。例如,所有的查询筛选器(ON,WHERE和HAVING)都把UNKNOWN当作FALSE处理。是筛选器为UNKNOWN的行会被排除在结果集外。而CHECK约束中的UNKNOWN值被当作TRUE对待。假设表中包含一个CHECK约束,要求salary列的值必须大于0,向该表中插入salary为null的行时可以被接受的。因为(NULL >0)等于UNKNOWN,在CHECK约束中被视为TRUE一样。

在筛选器中比较两个NULL值将得到UNKNOWN,它会被当作FALSE处理,就好象其中一个NULL不等于另一个NULL。

而UNIQUE约束、排序操作和分组操作认为两个NULL值是相等的。

相关文章:

  • 2021-08-13
  • 2021-11-30
  • 2021-12-05
  • 2018-08-14
  • 2021-11-30
  • 2021-08-04
  • 2021-09-25
  • 2019-08-13
猜你喜欢
  • 2021-11-09
  • 2021-12-02
  • 2022-01-01
  • 2021-12-02
  • 2021-12-02
  • 2021-10-19
  • 2021-11-30
相关资源
相似解决方案