您的位置:首页 > 数据库

SQL语句中不等号(!=,<>)

2016-06-03 11:08 2436 查看
转自:http://www.cnblogs.com/yongtaiyu/archive/2013/01/16/2863118.html

关于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的数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: