在做定时同步的时候,经常会做比较判断,常用的就是比较不等于就执行同步,但是在使用<>和!=的时候,是不能用来判断是否有null的情况的,<>和!=定义为:比较两个表达式。 当使用此运算符比较非空表达式时,如果左操作数不等于右操作数,则结果为 TRUE。 否则,结果为 FALSE

以下记录了实际发生的情况:

有两个表,一个原始表T_Person,一个需要从原始表同步的表T_SyncPerson,当工号一样且密码不一样时就需要同步,因此最核心的就是写出密码不相等SQL语句

create table T_Person(code varchar(20),name varchar(20),pwd varchar(18),state varchar(4)
)
create table T_SyncPerson(code varchar(20),name varchar(20),pwd varchar(18),state varchar(4)
)insert into T_Person(code,name,pwd,state) values('02219666','风徐来','1234','禁用')
insert into T_Person(code,name,pwd,state) values('02219666','风徐来','1111','启用')insert into T_SyncPerson(code,name,pwd,state) values('02219666','风徐来',null,'启用')

表中的数据有如下

最初的查询密码不同的语句如下

SELECT p.*
FROM   T_Person p,T_SyncPerson s
WHERE  p.code = s.codeAND p.state = '启用'AND s.state = '启用'AND p.pwd <> s.pwd 

执行后

没有数据

因此在比较的时候,遇到有null值需要特别注意,当然在设计表的时候,尽可能的不要使用null,可以用一个默认值代替null,null值代表的是未知数

最后修改的SQL语句如下

SELECT p.*
FROM   T_Person p,T_SyncPerson s
WHERE  p.code = s.codeAND p.state = '启用'AND s.state = '启用'-- AND p.pwd <> s.pwdAND ( ( p.pwd IS NULL     AND s.pwd IS NOT NULL )OR ( p.pwd IS NOT NULL AND s.pwd IS NULL )OR ( p.pwd <> s.pwd ) )

当SQLServer判断不等于遇到null的时候相关推荐

  1. SqlServer判断数据库、表、字段、存储过程、函数是否存在

    原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...

  2. java中不等于空怎么写_JAVA判断不等于空的情况

    判断不等于空的情况,千万不要搞混淆. if(orderId != null && !"".equals(orderId))  中间不是||的关系,是&&am ...

  3. SQLServer判断循环

    使用SQLServer语句对数据进行判断输出或者循环判断输出 不仅Java语言,C语言有判断和循环,SQLServer同样有判断和循环 1. 创建数据表 create table score ( st ...

  4. sqlserver excel导入数据时有null,为空值

    sqlserver excel导入数据时有null,最完美解决办法 1.说明为什么会出现导入的数据会为null? 因为在数据库导入数据时,他会自动检测数据的类型,文字一般检测为nvarchar类型,而 ...

  5. mysql if is not null_MySQL IS NULL判断值是否为NULL及优化详解

    摘要:在本教程中,您将学习如何使用MySQL IS NULL运算符来判断值是否为NULL. MySQL IS NULL运算符 要判断值是否为NULL,请使用IS NULL运算符.以下是IS NULL运 ...

  6. 为什么判断list的时候,既要判断不等于null有要判断size大于0

    list == null 说明list没有初始化(针对于类的成员属性)也就是没有数据, 或者list是赋值为了null,说明list内也没有数据 但是 当list 初始化后(如:new ArrayLi ...

  7. sqlserver 判断字段是否为空字符串或者null

    isnull(f.mzm,'')<>'' 不为null且不为'' not(f.mzm is null) 不为null 转载于:https://www.cnblogs.com/miracle ...

  8. Sql 中 不等于''与 NULL

    SQL 中 [不等于]使用'<>',此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 要查出含有'null'只需将SQL 改为 :select * from ...

  9. SQL判断不等于的5种方法和判断非空的11种方法

    做牛客练习题的时候遇到的 链接:SQL9 查找除复旦大学的用户信息 描述 题目:现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据 示例:user_profile id device_id ...

最新文章

  1. 如何解决现有的问题——VBA课程第五次讨论2007年12月13日
  2. Xamarin.Forms XAML的辅助功能Code Snippet
  3. linux内存转换成功,linux系统内存转换成硬盘使用
  4. java,将Image变量保存成图片
  5. 用了虚拟机Linux不能上网,虚拟机Linux不能上网怎么办
  6. python中函数的使用_python中的函数的使用示例
  7. angularjs与PHP,我应该混合AngularJS与PHP框架吗?
  8. python面试题_17道Python面试题,分享给你以防不测!
  9. ubuntu ip设置
  10. [jquery] 删除文章的时候弹出确认窗口
  11. 拓端tecdat|R语言基于Keras的小数据集深度学习图像分类
  12. 2)Thymeleaf 标准表达式语法详解
  13. 华为交换机初始化_华为交换机的初始配置
  14. java 网页录音并上传_Java+FlashWavRecorder实现网页录音并上传
  15. 使用h5新增的canvas标签绘制太极图案-代码
  16. 使用电容触摸屏做画板——软件IIC(二)
  17. TSINGSEE青犀视频构建pion webrtc运行broadcast示例的步骤
  18. 阿里云服务器Intel Xeon Platinum 8269CY(Cascade Lake)处理器CPU性能评测
  19. 鸡与 兔有几条腿的问题
  20. 计算机网络 之 DNS (Domain Name System)域名服务器

热门文章

  1. 围绕HugeTLB的极致优化
  2. 2021年三月上旬推荐阅读文章
  3. TCP/IP网络协议栈:IP协议
  4. 详解数据中心灾备切换技术
  5. OpenCV学习笔记:反色显示图片、鼠标事件、键盘事件和窗口滑动条操作
  6. python无限循环语句的代码_如何在Python中实现非阻塞无限循环
  7. python之列表操作
  8. sqoop建表_Sqoop学习之路 (一)
  9. 贵阳中职计算机学什么区别,贵阳中职计算机专业
  10. 两个子线程不冲突_多线程操作可见性