首先SQL SERVER 是一个三值逻辑 即谓词计算结果为TRUE,FALSE,UNKNOWN

标准的谓词都是遵循这种规则的

如 slary>0  会返回计算结果为TRUE 结果的行拒绝FALSE和UNKNOWN 结果

但不是所有的谓词处理都是这样的  如果出现在CHECK约束中   计算结果为不为FALSE 拒绝FALSE 意味着接受TRUE和UNKNOWN

TRUE 和FALSE 我们都知道什么意思 那 UNKNOWN 具体怎么避免呢?

1.UNKNOWN 

IS UNKNOWN  得到结果 NULL  这很正常   NOT IS 取反结果 还NULL  这让人很费解 NOT UNKNOWN依旧等于UNKNOWN

NULL=NULL 计算结果为UNKNOWN  NULL表示缺失,简单点说就是 一未知的值不可能等于另一个未知的值

所以 SQL 提供两个谓词 来判断是不是NULL  IS NULL 和 IS NOT NULL  替代=NULL <>NULL

记住  <>    计算结果不包括空 例如

SELECT custid, country, region, city
FROM Sales.Customers
WHERE region <> N'WA';

可以看到第一幅图并无NULL 行

接着我们查询为NULL的

SELECT custid, country, region, city
FROM Sales.Customers
WHERE region = NULL;

所以我们用 IS NULL 代替 =

SELECT custid, country, region, city
FROM Sales.Customers
WHERE region IS NULL;

如果想反回 不等于 wa 包括NULL

SELECT custid, country, region, city
FROM Sales.Customers
WHERE region <> N'WA'
   OR region IS NULL;

奇怪的是 在分组和排序谓词中 NULL=NULL 是成立的

在 唯一约束中 NULL 也是被认为相等的

T-SQL:是NULL不是NULL(七)的更多相关文章

  1. SQL Server表分区的NULL值问题

    SQL Server表分区的NULL值问题 SQL Server表分区只支持range分区这一种类型,但是本人觉得已经够用了 虽然MySQL支持四种分区类型:RANGE分区.LIST分区.HASH分区 ...

  2. SQL语句中=null和is null

    平时经常会遇到这两种写法:IS NOT NULL与!=NULL.也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合.实际上,是由于对二者使用区别理解不透彻. 默认情况下,推荐使用 IS ...

  3. SQL<>0查询不到NUll的值

    这几天遇到这样一个问题,sql中写<>0,刚好某个记录是NULL,道理上是满足<>0的啊,可是就是抽不出来,关于这个问题,到处找了点资料,算是这里 写一个总结出来. 用java ...

  4. Oracle SQL篇(一)null值之初体验

           从我第一次正式的写sql语句到现在,已经超过10年的时间了.我写报表,做统计分析和财务对账,我一点点的接触oracle数据库,并尝试深入了解.这条路,一走就是10年,从充满热情,到开始厌 ...

  5. java.sql.SQLException: The SQL statement must not be null or empty.这个错误

    今天发现了这个错误 java.sql.SQLException: The SQL statement must not be null or empty. 并且看了些网页:综合说下这个错误. 一般都是 ...

  6. sql server判断是否为null

    sql server 替换null:isnull(arg,value) 如:select isnull(price,0.0) from orders ,如果price为null的话,用0.0替换 与n ...

  7. java.sql.SQLException: connection holder is null;

    一.问题来源分析 出现的错误 : Cause: java.sql.SQLException: connection holder is null; uncategorized SQLException ...

  8. java.sql.SQLException: connection holder is null 问题处理

    问题描述 上上个周测试的时候突然报系统异常,于是我立即查看日志,发现是一个数据库异常:java.sql.SQLException: connection holder is null我第一想到的就是可 ...

  9. Databricks 第9篇:Spark SQL 基础(数据类型、NULL语义)

    Spark SQL 支持多种数据类型,并兼容Python.Scala等语言的数据类型. 一,Spark SQL支持的数据类型 整数系列: BYTE, TINYINT:表示1B的有符号整数 SHORT, ...

  10. 必须会的SQL语句(五)NULL数据处理和类型转换

    1.Null数据的处理     1)检索出null值               select * from 表 where xx is null        2)null值替换      sele ...

随机推荐

  1. 【python-HTMLTestRunner】HTMLTestRunner测试报告中文乱码问题解决

    打开HTMLTestRunner.改动如图所示行 改成‘utf-8’

  2. day15_雷神_前端03

    # 前端 day03 内容回顾 javascript: 1.ECMAScript5.0 es6(阮一峰) es7 es8 (1)声明变量 var let (2)内置函数 Date Math.rando ...

  3. centos7系统下,配置学校客户端网络记录

    存在的情况 1.学校的网络客户端绑定了个人的电脑MAC地址.绑定了IP地址. 2.我有两台笔记本,一台用了4年多,想用这台(B)直接装centos7系统,然后新买的笔记本(A)做为经常用的,系统为wi ...

  4. cf 20C Dijkstra?

    带队列  dijkstra #include <iostream> #include <cstdio> #include <queue> #include < ...

  5. [Unity插件]DOTween基础

    官方文档链接:http://dotween.demigiant.com/documentation.PHP#globalSettings 普通版下载地址:http://dotween.demigian ...

  6. 安装stress模拟linux系统资源消耗

    1.安装yum源:yum install epel-release -y 2.安装stress:yum install stress -y 3.使用样例:stress -c 1 -t 60 4.测试场 ...

  7. Matlab实现《追光者》简谱

    MATLAB除了生孩子,其他全都能做系列. 使用MATLAB进行播放<追光者>,纯文本内容哦. Fs = ; load y; sound(y, Fs); 加载的y是哪里来的呢?当然是调用函 ...

  8. httpd: apr_sockaddr_info_get() failed for bogon

    AH00557: httpd: apr_sockaddr_info_get() failed for bogon AH00558: httpd: Could not reliably determin ...

  9. HttpWebRequst中https的验证处理问题

    最近在公司项目中使用了HttpWebRequst相关API,运行环境为.Net/Mono 2.0,是一款针对Unity平台的工具.开发过程中碰到了大家可能都碰到过的问题,Http还是Https? 为什 ...

  10. [P4318] 完全平方数

    想不出什么办法能直接算的(别跟我提分块打表),不如二分答案吧:设\(f(x)=\sum_{i=1}^n [i不是"完全平方数"]\), 显然f(x)与x正相关.再结合筛法.容斥,不 ...