mysql ansi nulls_sql server 的ANSI_NULLS设置
当 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设置相关推荐
- mysql ansi nulls_SQL学习笔记之ANSI_NULLS
SET ANSI_NULLS{ON|OFF}:用来指定对空值使用等于(=)和不等于(<>)比较运算符时,这些运算符应遵从什么行为.具体是什么样的行为呢?SQL-92要求如下: SQL-92 ...
- 改mysql修改界定符_dbvisualizer参数设置
6.13 可否完全禁用数据编辑? 可以. 方法: 在文本编辑器里打开文件 DBVIS-HOME/resources/dbvis-custom.prefs. 找出 dbvis.disabledataed ...
- the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题
今天遇到一个网友求助,提到自己的网站可能是被攻击或者是其他问题导致网站无法打开.这里我也有看到他的网站打开之后提示"Error establishing a database connect ...
- Windows下MySQL 5.6.19 general_log的设置(亲测)
MySQL 5.6.19的general_log默认是关闭的,应该说MySQL的general_log默认是关闭的,不分具体版本和平台 一.从配置文件中启用general_log Windows下my ...
- mysql names gb2312_mysql_query(set names gb2312)设置客户端字符集
$conn=mysql_connect("localhost","root","123456"); mysql_select_db(&quo ...
- Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
1. 编辑MySql的配置文件 MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf --在 [my ...
- 解决 Starting MySQL ERROR The server quit without updating PID file
服务器断电重启后mysql启动报错,记录一下解决方案 环境 mysql版本 5.7.21 服务器 Red Hat Enterprise Linux Server release 7.6 (Maipo) ...
- MySQL导入sql脚本中文乱码设置和常用命令
MySQL导入sql脚本中文乱码设置和常用命令 1. use database_name; 2. set names utf8; (或其他需要的编码) 3. source example.sql ...
- 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 ...
最新文章
- 闭包函数python_Python--函数对象闭包函数
- 离散数学及其应用 (Kenneth H·Rosen 著)
- python的底层是c_python基本数据类型底层实现
- 使用javaMail收邮件 支持附件下载
- 【活动】厦门.NET俱乐部 省上云开发者专场
- bfc是什么_一次弄懂css的BFC
- s:TextInput优化
- 20170826滴滴算法工程师笔试
- 软件安装包制作工具installshield 2020 R1的安装教程
- Exchange 2010安装先决条件及注意事项
- 交换机入门书籍推荐_网络工程学习方法/路线/专业书籍推荐
- 腾讯大厂2022校招来啦
- 服务器被攻击被DDoS攻击该怎么办呢
- Shell脚本文本三剑客之Sed
- 【自动化营销】跨境电商高效进行WhatsApp营销技巧!
- 电脑白屏,电脑白屏是怎么回事?是系统的原因还是
- ajax hover,jQuery / 使用hover()和toggle()切换事件 - 汇智网
- (全)Docker安装+人脸比对算法服务(win10)
- mysql8 Record Locks ,Gap Locks, Next-Key Locks实验2 唯一索引和非唯一索引,无索引情况
- 区块链将颠覆游戏业,游戏内商品未来也可带出游戏、自由交易