Oracle的in/not in(x,...,null)
2015-07-28 16:53
579 查看
简述
cola in (x,y,z)等价于 cola=x or cola=y or cola=z
cola not in (x,y,z)等价于 !(cola=x or cola=y or cola=z) 等价于 cola!=x and cola!=y and cola!=z
再说 cola=null和cola!=null,这两个表达式的结果都是false
然后就能看出来
cola in (x,y,...,z,null) 等价于 cola in (x,y,...,z)意思就是多你一个不多反正是 compareResult or false = compareResult,
cola not in (x,y,...z,null) 等价于 false 因为 compareResult and false = false,也就是把它放到where语句里面查不到任何记录。
参照地址http://x-spirit.iteye.com/blog/615603
今后我们在使用中记得,如果是用了select * from tablea where cola not in (select colb from tableb)这种子查询的时候,一定
要注意了,因为万一子查询里面有空值,那么就会查询不到结果。
cola in (x,y,z)等价于 cola=x or cola=y or cola=z
cola not in (x,y,z)等价于 !(cola=x or cola=y or cola=z) 等价于 cola!=x and cola!=y and cola!=z
再说 cola=null和cola!=null,这两个表达式的结果都是false
然后就能看出来
cola in (x,y,...,z,null) 等价于 cola in (x,y,...,z)意思就是多你一个不多反正是 compareResult or false = compareResult,
cola not in (x,y,...z,null) 等价于 false 因为 compareResult and false = false,也就是把它放到where语句里面查不到任何记录。
参照地址http://x-spirit.iteye.com/blog/615603
今后我们在使用中记得,如果是用了select * from tablea where cola not in (select colb from tableb)这种子查询的时候,一定
要注意了,因为万一子查询里面有空值,那么就会查询不到结果。
相关文章推荐
- oracle坏块及解决办法
- Oracle到SAP HANA实时复制系列(一):初识SRS
- Oracle到SAP HANA实时复制系列(二):Replication Server的安装与配置
- oracle 12 安装报错
- Oracle到SAP HANA实时复制系列(三):Replication Agent的安装与配置
- Oracle入门学习----通过jdbc连接oracle实例
- Oracle 创建表空间与用户
- Oracle数据库再次安装
- 一次ORACLE启动报错修复的记录
- 关于ORACLE数据库服务器SWAP该设置成多大的建议值
- Oracle选择重复记录
- oracle 11g dataguard创建的简单方法
- Oracle经典教程学习笔记
- oracle 外部表 如何忽略第一行的标题
- Oracle用户管理与安全
- 查看oracle的sql语句历史记录和锁表的情况
- ORACLE中CURSOR使用
- oracle导出数据库里的表为dmp文件
- SharePoint 读取Oracle webservice “已超过传入消息(65536)的最大消息大小配额。”
- oracle如何执行存储过程