当 SET ANSI_NULLS 为 ON 时,表示SQL语句遵循SQL-92标准。当 SET ANSI_NULLS 为 OFF 时,表示不遵从 SQL-92 标准。

SQL-92 标准要求对空值(NULL)的等于 (=) 或不等于 (<>) 比较取值都为 FALSE,即对所有字段的进行操作:= NULL 或者 <>NULL,返回的都是false。如果用这2个条件进行查询都将查询不到任何的数据。即使 column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中存在非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍返回零行。

此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有非 XYZ 值和非 NULL的行。为使脚本按预期运行,不管 ANSI nulls 数据库选项或 SET ANSI_NULLS 的设置是什么,在可能包含空值的比较中使用 IS NULL 和 IS NOT NULL。

库表:

[id] [int] IDENTITY(1,1) NOT NULL,

[value] [varchar](50) NULL,

[mark] [varchar](50) NULL,

数据:

INSERT INTO [FinanceStock].[dbo].[Table_Test]

([value])

VALUES

(''),(' '),('v'),(NULL)

语句1:

set ANSI_NULLS ON

GO

SELECT [id]

,[value]

FROM [FinanceStock].[dbo].[Table_Test]

WHERE [value] <> NULL

GO

结果为空

语句2:

set ANSI_NULLS ON

GO

SELECT [id]

,[value]

FROM [FinanceStock].[dbo].[Table_Test]

WHERE [value] = NULL

GO

结果为空

语句3:

set ANSI_NULLS OFF

GO

SELECT [id]

,[value]

FROM [FinanceStock].[dbo].[Table_Test]

WHERE [value] <> NULL

GO

符合条件的记录3条

语句4:

set ANSI_NULLS OFF

GO

SELECT [id]

,[value]

FROM [FinanceStock].[dbo].[Table_Test]

WHERE [value] = NULL

GO

符合条件的记录1条

语句5:

set ANSI_NULLS OFF

GO

SELECT [id]

,[value]

FROM [FinanceStock].[dbo].[Table_Test]

WHERE [value] <> 'V'

GO

符合条件的记录2条

mysql ansi nulls_sql server 的ANSI_NULLS设置相关推荐

  1. mysql ansi nulls_SQL学习笔记之ANSI_NULLS

    SET ANSI_NULLS{ON|OFF}:用来指定对空值使用等于(=)和不等于(<>)比较运算符时,这些运算符应遵从什么行为.具体是什么样的行为呢?SQL-92要求如下: SQL-92 ...

  2. 改mysql修改界定符_dbvisualizer参数设置

    6.13 可否完全禁用数据编辑? 可以. 方法: 在文本编辑器里打开文件 DBVIS-HOME/resources/dbvis-custom.prefs. 找出 dbvis.disabledataed ...

  3. the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题

    今天遇到一个网友求助,提到自己的网站可能是被攻击或者是其他问题导致网站无法打开.这里我也有看到他的网站打开之后提示"Error establishing a database connect ...

  4. Windows下MySQL 5.6.19 general_log的设置(亲测)

    MySQL 5.6.19的general_log默认是关闭的,应该说MySQL的general_log默认是关闭的,不分具体版本和平台 一.从配置文件中启用general_log Windows下my ...

  5. mysql names gb2312_mysql_query(set names gb2312)设置客户端字符集

    $conn=mysql_connect("localhost","root","123456"); mysql_select_db(&quo ...

  6. Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8

    1.  编辑MySql的配置文件 MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf --在 [my ...

  7. 解决 Starting MySQL ERROR The server quit without updating PID file

    服务器断电重启后mysql启动报错,记录一下解决方案 环境 mysql版本 5.7.21 服务器 Red Hat Enterprise Linux Server release 7.6 (Maipo) ...

  8. MySQL导入sql脚本中文乱码设置和常用命令

    MySQL导入sql脚本中文乱码设置和常用命令 1. use database_name;  2. set names utf8; (或其他需要的编码)  3. source example.sql ...

  9. mysql启动之 Starting MySQL.. ERROR The server quit without updating PID file xs43254219216.pid

    亲测可用,若有疑问请私信 Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/dat ...

最新文章

  1. 闭包函数python_Python--函数对象闭包函数
  2. 离散数学及其应用 (Kenneth H·Rosen 著)
  3. python的底层是c_python基本数据类型底层实现
  4. 使用javaMail收邮件 支持附件下载
  5. 【活动】厦门.NET俱乐部 省上云开发者专场
  6. bfc是什么_一次弄懂css的BFC
  7. s:TextInput优化
  8. 20170826滴滴算法工程师笔试
  9. 软件安装包制作工具installshield 2020 R1的安装教程
  10. Exchange 2010安装先决条件及注意事项
  11. 交换机入门书籍推荐_网络工程学习方法/路线/专业书籍推荐
  12. 腾讯大厂2022校招来啦
  13. 服务器被攻击被DDoS攻击该怎么办呢
  14. Shell脚本文本三剑客之Sed
  15. 【自动化营销】跨境电商高效进行WhatsApp营销技巧!
  16. 电脑白屏,电脑白屏是怎么回事?是系统的原因还是
  17. ajax hover,jQuery / 使用hover()和toggle()切换事件 - 汇智网
  18. (全)Docker安装+人脸比对算法服务(win10)
  19. mysql8 Record Locks ,Gap Locks, Next-Key Locks实验2 唯一索引和非唯一索引,无索引情况
  20. 区块链将颠覆游戏业,游戏内商品未来也可带出游戏、自由交易

热门文章

  1. 切换输入法的c#代码
  2. cyberarticle 5专业版教程
  3. 【QT】QT Qtimer定时的使用 含屏保功能实现,鼠标无操作后处理事件
  4. 使用EEGLAB分析脑电数据,情绪图片的ERP成分分析
  5. linux menuconfig搜索,Linux make menuconfig查找并快速跳转指定驱动选项
  6. 谷歌浏览器怎么将迅雷设置为默认下载方式 谷歌浏览器设置迅雷为默认下载的教程
  7. 用js模拟一个简单敏感词过滤器
  8. 所有的双色球开奖记录都在这里了
  9. likeshop外卖点餐系统【100%开源无加密】
  10. 企业级方正平台安装下载