oracle not in 数组,慎用Oracle的not in (轉)
据说EXCEL2007版本已经提供了这种比对的功能,但无奈数据量太大,操作起来巨慢如牛,而WPS2009似乎还没这个功能,于是导入数据库中新建一个表存储这些数据来比对。
开始写了个SQL来查询税务有而ERP系统中没有的数据:
select * from tab_excel where taxcode not in
(select erpcode from tab_excel)
正常,然后反过来查ERP中存在而税务系统中不存在的数据:
select * from tab_excel where erpcode not in
(select taxcode from tab_excel)
返回0条数据,很奇怪,然后马上想到了是null的问题,taxcode必然存在值为null的记录,oracle中和null比较的返回值是unkown,所以才无法匹配。
于是修改SQL语句如下:
select * from tab_excel tout where not exists
(select 1 from tab_excel where taxcode=tout.erpcode)
结果正常。
not in (...) 括号中的返回值不能存在null值,是Oracle SQL开发的一条铁律,如果不能确定返回结果一定无null值,还是改写为not esists吧。而且not in效率低下,一般不能用到索引,生产环境的程序最好不要使用。
posted on 2009-10-20 16:05 Ke 阅读(174) 评论(0) 编辑 收藏 所属分类: oracle
oracle not in 数组,慎用Oracle的not in (轉)相关推荐
- oracle存储过程中数组的使用
oracle存储过程中数组的使用 create or replace package ArrayTestPKG1 is type tt_type is table of varchar(32) ...
- ORACLE存储过程使用数组
ORACLE存储过程使用数组 1 单维数组 --单维数组 DECLARE-- 定义一个数组TYPE emp_ssn_array IS TABLE OF NUMBER INDEX BY BINARY_I ...
- oracle sql获取本季度,oracle sql 获取本季度所有月份,上季度所有月份
上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...
- oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南
Oracle 12c PL/SQL程序设计终极指南 作者:孙风栋;王澜;郭晓惠 出版日期:2015年06月 文件大小:11.73M 支持设备: ¥60.00在线试读 适用客户端: 言商书局 iPad/ ...
- ssh oracle id native,hibernate解决oracle的id自增?
以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...
- oracle+函数怎么写if,Oracle NULLIF函数
Oracle NULLIF函数 Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果. 注意: ...
- oracle视图有索引么,Oracle 的视图与索引
Oracle 的视图与索引 有表A(字段A1,A2)和表B(字段B1,B2). 字段A2,B2上都有索引. A,B 表联查 sql1 这个sql 非常快 2秒的样子 select * from A,B ...
- Oracle数据库面试题 精选 Oracle 面试题
Oracle数据库面试题 1.解释冷备份和热备份的不同点以及各自的优点 冷备份 发生在数据库已经正常关闭的情况下,将关键性文件拷贝到另外位置的一种说法.适用于所有模式的数据库. 优点 1. 是非常快速 ...
- oracle系统表空间不足,oracle表空间不足相关问题解决办法
oracle 临时表空间和数据表空间 Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序.重启数据库可以释放临时表空间,如果不能重启实例, ...
最新文章
- HDoj-1042 大数阶乘
- 《分布式操作系统》知识点(1~7)一
- vectorvectorint 二维容器编程
- 【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)
- 【Linux系统编程】线程堆栈大小的使用介绍
- 【19行代码AC,简洁】1029 Median (25 分)
- Haar、pico、npd、dlib等多种人脸检测特征及算法结果比较
- 数据结构与算法专题——第九题 外排序
- nacos 本地测试_本地调试和服务器调试都无法连通-问答-阿里云开发者社区-阿里云...
- iOS直播点赞动画,iOS直播心型点赞动画
- 堆插入和删除的简单实现
- ip变更会影响账号登陆吗_代理IP的匿名度级别会影响自身稳定性吗
- 牛客SQL题解 - 查找employees表
- 站在搜索引擎的视角看ASO,aso商店搜索引擎优化
- 如何开启IIS7以上的“IIS6管理兼容性”
- RADASM中使用DOSBOX来运行DOS/BIOS程序(16位)
- 苹果闪存性能测试软件,IphoneXS64GB VS 256GB 性能测试?,苹果不想让你知道的事!...
- python绘制分形图形教程_#python绘制分形图形教程#如何用Python绘制Circos图
- HTTP概念协议报文结构请求响应数据报分析
- kali linux u盘 live,Kali Linux Live U盘安装过程
热门文章
- 保证MQ消费消息的幂等性,真可以用版本号的方式?
- Kotlin 风险高、RxJava 已过时,Android 原生开发现状分析!
- 一文足以了解什么是 Java 中的锁
- 突发!程序员!快别闷头学Python了!
- 彻底征服 Entity Framework Core 优化!
- 时至今日,百度无人车还好吗?
- 用脚踹?地震火灾中,如何快速打开人脸识别闸机门?
- 黑客少年手机编 10 万行代码,恶意篡改 App 只为了 “炫技”?
- 网易考拉的服务架构如何从单体应用走向微服务化? | 技术头条
- Java、JS、C++ 依然强势,Go、Kotlin 等新语言为何不能破局?