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值相等。

  • 相关阅读:
    个人学习进度(第十二周)
    第一阶段冲刺(第九天)
    搜狗输入法用户体验
    第一阶段冲刺(第八天)
    第一阶段冲刺(第七天)
    Fliter(过滤器)的认识
    一、python运算符
    virtualenv虚拟环境
    Linux命令(二)
    Linux命令(一)
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2376404.html
Copyright © 2011-2022 走看看