• 关于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的数据

  • 相关阅读:
    C# 添加修改防火墙端口及程序
    Winform 多线程--解决界面卡死问题
    ScreenOper
    KVM的VPS主机在Centos6.x下修改系统时间
    Java IO和File类
    Java动态代理Proxy类源码分析
    Java IO之字节流
    Java IO之字符流
    两台计算机之间如何通讯
    Java引用类型原理
  • 原文地址:https://www.cnblogs.com/vofill/p/6866215.html
Copyright © 2020-2023  润新知