当SQLServer判断不等于遇到null的时候
在做定时同步的时候,经常会做比较判断,常用的就是比较不等于就执行同步,但是在使用<>和!=的时候,是不能用来判断是否有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的时候相关推荐
- SqlServer判断数据库、表、字段、存储过程、函数是否存在
原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...
- java中不等于空怎么写_JAVA判断不等于空的情况
判断不等于空的情况,千万不要搞混淆. if(orderId != null && !"".equals(orderId)) 中间不是||的关系,是&&am ...
- SQLServer判断循环
使用SQLServer语句对数据进行判断输出或者循环判断输出 不仅Java语言,C语言有判断和循环,SQLServer同样有判断和循环 1. 创建数据表 create table score ( st ...
- sqlserver excel导入数据时有null,为空值
sqlserver excel导入数据时有null,最完美解决办法 1.说明为什么会出现导入的数据会为null? 因为在数据库导入数据时,他会自动检测数据的类型,文字一般检测为nvarchar类型,而 ...
- mysql if is not null_MySQL IS NULL判断值是否为NULL及优化详解
摘要:在本教程中,您将学习如何使用MySQL IS NULL运算符来判断值是否为NULL. MySQL IS NULL运算符 要判断值是否为NULL,请使用IS NULL运算符.以下是IS NULL运 ...
- 为什么判断list的时候,既要判断不等于null有要判断size大于0
list == null 说明list没有初始化(针对于类的成员属性)也就是没有数据, 或者list是赋值为了null,说明list内也没有数据 但是 当list 初始化后(如:new ArrayLi ...
- sqlserver 判断字段是否为空字符串或者null
isnull(f.mzm,'')<>'' 不为null且不为'' not(f.mzm is null) 不为null 转载于:https://www.cnblogs.com/miracle ...
- Sql 中 不等于''与 NULL
SQL 中 [不等于]使用'<>',此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 要查出含有'null'只需将SQL 改为 :select * from ...
- SQL判断不等于的5种方法和判断非空的11种方法
做牛客练习题的时候遇到的 链接:SQL9 查找除复旦大学的用户信息 描述 题目:现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据 示例:user_profile id device_id ...
最新文章
- 如何解决现有的问题——VBA课程第五次讨论2007年12月13日
- Xamarin.Forms XAML的辅助功能Code Snippet
- linux内存转换成功,linux系统内存转换成硬盘使用
- java,将Image变量保存成图片
- 用了虚拟机Linux不能上网,虚拟机Linux不能上网怎么办
- python中函数的使用_python中的函数的使用示例
- angularjs与PHP,我应该混合AngularJS与PHP框架吗?
- python面试题_17道Python面试题,分享给你以防不测!
- ubuntu ip设置
- [jquery] 删除文章的时候弹出确认窗口
- 拓端tecdat|R语言基于Keras的小数据集深度学习图像分类
- 2)Thymeleaf 标准表达式语法详解
- 华为交换机初始化_华为交换机的初始配置
- java 网页录音并上传_Java+FlashWavRecorder实现网页录音并上传
- 使用h5新增的canvas标签绘制太极图案-代码
- 使用电容触摸屏做画板——软件IIC(二)
- TSINGSEE青犀视频构建pion webrtc运行broadcast示例的步骤
- 阿里云服务器Intel Xeon Platinum 8269CY(Cascade Lake)处理器CPU性能评测
- 鸡与 兔有几条腿的问题
- 计算机网络 之 DNS (Domain Name System)域名服务器