TSQL--SET ANSI_NULLS OFF
当ANSI_NULLS 为ON时,遵循SQL92的标准,只能使用IS NULL 来判断值是否为NULL, 而不能使用=或<>来与NULL做比较,任何值包括NULL值与NULL值做=或<>运算都得到FALSE
当ANSI_NULLS为OFF时,将不再遵循SQL92标准,可以使用=和<>来与NULL做BOOL运算
测试代码
SET ANSI_NULLS ON
;WITH T1 AS
(
SELECT 1 AS ID
UNION ALL
SELECT NULL
UNION ALL
SELECT 2
)
SELECT * FROM T1
WHERE ID =NULL
GO
SET ANSI_NULLS OFF
;WITH T1 AS
(
SELECT 1 AS ID
UNION ALL
SELECT NULL
UNION ALL
SELECT 2
)
SELECT * FROM T1
WHERE ID =NULL
测试结果:
第二次查询能获取NULL的一行
关于NULL的延伸:
1. 对应聚合函数COUNT,只有SELECT COUNT(*)和SELECT COUNT(1) 会将为NULL的行计算在内,SELECT COUNT(ID)会忽略ID列为NULL的行
2. 对应除COUNT外的其他聚合函数,计算时不考虑为NULL的行
3. 对应CHECK CONSTRAINT,如果列允许为NULL的条件下,为NULL的行将不受CHEKC CONSTRAINT的限制,例如有CHECK CONSTRAINT条件为C1>10,对C1列插入NULL值或更新为NULL不会违反CHECK CONSTRAINT.
4. 在GROUP BY 的时候,会将所有NULL归为一组
TSQL--SET ANSI_NULLS OFF的更多相关文章
- SET ANSI_NULLS ON 在T-SQL中是什么意思
from:https://www.cnblogs.com/kekong/p/6731321.html Transact-SQL 支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE. ...
- T-sql语句查询执行顺序
前言 数据库的查询执行,毋庸置疑是程序员必备技能之一,然而数据库查询执行的过程绚烂多彩,却是很少被人了解,今天哥哥要带你装逼带你飞,深入一下这sql查询的来龙去脉,为查询的性能优化处理打个基础,或许面 ...
- [转载]T-SQL(MSSQL)语句查询执行顺序
注意:笔者经过实验和查阅资料,已在原作基础上做了部分更改.更改不代表原作观点,查看原作请点击下方链接. 原文出处: 作者:张龙豪 链接:http://www.cnblogs.com/knowledge ...
- T-SQL性能调整(一)--编译和重新编译
概念简介 我们平时所说的查询在SQLServer 中主要有两部分来实现: 编译查询,主要包括了五个环节(缓存查找.分析.代数化.优化.缓存新计划) 流程描述: 首先,在计划缓存中查找是否包含新的查询, ...
- Inside TSQL Querying - Chapter 3. Query Tuning
Tuning Methodology When dealing with performance problems, database professionals tend to focus on t ...
- 【转】T-SQL 教程
USE [test] GO /****** Object: StoredProcedure [dbo].[PageIndex] Script Date: 12/07/2011 10:26:36 *** ...
- CODE - TSQL convert Query to JSON
原文 ODE - TSQL convert Query to JSON TSQL - Query to JSON It is my philosophy that good development s ...
- 工作T-SQL备忘
作为一个"浸淫" Oracle 数据库很久的人来说, 突然转入 T-SQL, 也就是 MSSQL , 工作中经常用的查询和 MSMS 使用备忘如下 : --1. 切换对应的库连接 ...
- SET ANSI_NULLS ON,SET NOCOUNT ON,SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ONTransact-SQL 支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE. 通过设置 ANSI_NULLS OFF 可将此选项激活.当 ANSI ...
- T-SQL 之 事务
事务全部是关于原子性的.原子性是指可以把一些事情当做一个单元来看待.从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合. 事务要有非常明确的开始和结束点.SQL Server中 ...
随机推荐
- Linux_LVM Couldn't find device with uuid
Linux LVM commands result in Couldn't find device with uuid Couldn't find all physical volumes for v ...
- docker 及 linux 初接触
3天来净折腾这俩东西了,总结一下(很多都是同事给出的解释,先不保证正确性): 1.docker 里的images 和 container images 类似系统盘,container类似用系统盘装起来 ...
- CSS滤镜模糊效果
.blur { -webkit-filter: blur(6px); -moz-filter: blur(6px); -ms-filter: blur(6px); filter: blur(6px); ...
- Deep Learning 学习笔记(5):Regularization 规则化
过拟合(overfitting): 实际操作过程中,无论是线性回归还是逻辑回归,其假设函数h(x)都是人为设定的(尽管可以通过实验选择最优). 这样子就可能出线“欠拟合”或者“过拟合”现象. 所谓过拟 ...
- Python内置函数二 (递归函数,匿名函数,二分法)
匿名函数 lambda() 语法: lambad 参数 : 返回值 def func(a,b): return a * b print(func(2,5)) a = lambda a ,b : a* ...
- STM32呼吸灯
使用STM32开发板和mbed平台实现的一个呼吸灯.材料,LED灯,电阻,STM32开发板. 先上一张效果图. 背景: 我们之前设置GPIO口使用了DigitalOut,数字信号输出.只能是GPIO口 ...
- jenkins容器权限被拒绝
问题,我们从官网上面pull下jenkins后,如果直接运行容器的没问题 docker run -d -p 8080:8080 -v jenkins:latest 不过我们可能需要映射下容器内部的地址 ...
- linux进程的管道通信
linux进程的管道通信 要求 编程实现进程的管道通信,掌握管道通信的同步和互斥机制. 相关函数 pipe管道 指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件.向管 ...
- saltstack系列(四)——zmq Paraller Pipeline模式
push/pull模式 push/pull模式,这是一个什么模式呢?战争时期,食物紧缺,实行配给制,大家都排好队,有人专门发放食物,前一个人领取了食物,后一个人跟上继续领取食物,这个push端就是发放 ...
- easylogging++学习记录(二):流式日志
easylogging++日志库流式日志的写入,依赖于el::base::Writer类的析构,以debug日志为例:具体代码如下: #define LOG(LEVEL) CLOG(LEVEL, EL ...