关于SQL命令中不等号(!=,<>)-will.miao
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


关于SQL命令中不等号(!=,<>)

发表时间:2019/2/22 13:33:30 评论(0) 浏览(8416)  评论 | 加入收藏 | 复制
   
摘 要:关于SQL命令中不等号(!=,<>)
正 文:

比较两个表达式(比较运算符)。当比较非空表达式时,如果左边操作数的数值不等于右边的操作数,则结果为 TRUE;否则结果为 FALSE。如果两个操作数中有一个或者两个都为 NULL,并且 SET ANSI_NULLS 被设置为 ON,则结果为 NULL。如果 SET ANSI_NULLS 被设置为 OFF,则当一个操作数为 NULL 时结果为 FALSE,当两个操作数都为 NULL 时结果为 TRUE。

问题:t-sql操作符中,不等号(!=,<>),查询出来的结果集不包含有当前字段为null的数据?

如下一个表ud_fgdj_jbxx有三个字段ztlx   ,gmlx   ,tslx,有如下数据:
ztlx    gmlx    tslx
--------------------
个体 NULL NULL
内资 02     NULL
内资 NULL    wxqy
内资 02     NULL

使用如下SQL查询的时候不会返回任何结果集
select * from ud_fgdj_jbxx where tslx<>'wxqy'
select * from ud_fgdj_jbxx where tslx!='wxqy'

如果把表的数据变为如下:
ztlx    gmlx    tslx
--------------------
个体 NULL NULL
内资 02     NULL
内资 NULL    wxqy
内资 02     NULL
内资 02     yty
内资 02     
再执行如下SQL查询
select * from ud_fgdj_jbxx where tslx<>'wxqy'
select * from ud_fgdj_jbxx where tslx!='wxqy'

会返回结果集
ztlx    gmlx    tslx
--------------------
内资 02     yty
内资 02    

同时测试slq查询:select * from ud_fgdj_jbxx where tslx<>null

1、SET ANSI_NULLS 被设置为 ON
也不会返回任何结果集

2、SET ANSI_NULLS 被设置为 off

返回tslx不为null 的数据

结论:t-sql操作符中,不等号(!=,<>),查询出来的结果集不包含有当前字段为null的数据


Access软件网交流QQ群(群号:198465573)
 
 相关文章
SQL中where 1=1,where1<>1的作用   【风行  2012/6/2】
SQL Server还原失败(数据库正在使用,无法获得对数据库的独...  【缪炜  2018/11/30】
Access“是/否”类型字段与SQL Server bit类型字...  【红尘如烟  2019/1/6】
VBA易用化研究院:混元神功之统一VBA中SQL语句执行的方法  【红尘如烟  2019/1/29】
常见问答
技术分类
相关资源
文章搜索
关于作者

will.miao

文章分类

文章存档

友情链接