zoukankan      html  css  js  c++  java
  • TSQL查询笔记3:三值逻辑

    在SQL中谓词(逻辑表达式)的可能取值有TRUE、FALSE和UNKNOWN,这就是所谓的三值逻辑。

    UNKNOWN逻辑通常出现在涉及NULL值的逻辑表达式中,NULL代表一种缺失的值,当把一个缺失的值和另一个值(这个值也可能是NULL)进行比较时,逻辑结果总是UNKNOWN。

    查询筛选器(ON WHERE HAVING)都把UNKNOWN当作FALSE处理,使筛选器取值为UNKNOWN的行会被排除在结果集之外。而 CHECK结束中的UNKNOWN被当作FALSE对待,如表中一个CHECK结束要求某列大于0,向该列插入NULL值也会成功,因为 NULL>0等于UNKNOWN。

    在筛选器中比较两个NULL值将得到UNKNOWN,而在UNIQUE结束、集合运算(如UNION和EXCEPT)、排序和分组操作中,认为两个NULL值相等:
    1,如果表中一列定义了UNIQE 约束,将无法向表中插入两行NULL值。
    2,GROUP BY子句会将所有NULL分到一组。
    3,ORDER BY子句会将所有NULL排列在一起。
    4,当比较两个集合中的行时,集合运算符认为两个NULL值相等。

  • 相关阅读:
    poj1862---变形虫(贪心)
    poj1833---字典序算法
    poj1799---解析几何
    poj1665
    poj1663---纯粹找规律
    poj1658
    poj1657---chessboard
    poj1656---数黑格子
    poj1617---columnar encryption
    查找两个文件的相同之处,不同之处
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2376404.html
Copyright © 2011-2022 走看看