据说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 (轉)相关推荐

  1. oracle存储过程中数组的使用

    oracle存储过程中数组的使用 create or replace package ArrayTestPKG1 is    type tt_type is table of varchar(32) ...

  2. ORACLE存储过程使用数组

    ORACLE存储过程使用数组 1 单维数组 --单维数组 DECLARE-- 定义一个数组TYPE emp_ssn_array IS TABLE OF NUMBER INDEX BY BINARY_I ...

  3. oracle sql获取本季度,oracle sql 获取本季度所有月份,上季度所有月份

    上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...

  4. oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南

    Oracle 12c PL/SQL程序设计终极指南 作者:孙风栋;王澜;郭晓惠 出版日期:2015年06月 文件大小:11.73M 支持设备: ¥60.00在线试读 适用客户端: 言商书局 iPad/ ...

  5. ssh oracle id native,hibernate解决oracle的id自增?

    以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...

  6. oracle+函数怎么写if,Oracle NULLIF函数

    Oracle NULLIF函数 Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果. 注意: ...

  7. oracle视图有索引么,Oracle 的视图与索引

    Oracle 的视图与索引 有表A(字段A1,A2)和表B(字段B1,B2). 字段A2,B2上都有索引. A,B 表联查 sql1 这个sql 非常快 2秒的样子 select * from A,B ...

  8. Oracle数据库面试题 精选 Oracle 面试题

    Oracle数据库面试题 1.解释冷备份和热备份的不同点以及各自的优点 冷备份 发生在数据库已经正常关闭的情况下,将关键性文件拷贝到另外位置的一种说法.适用于所有模式的数据库. 优点 1. 是非常快速 ...

  9. oracle系统表空间不足,oracle表空间不足相关问题解决办法

    oracle 临时表空间和数据表空间 Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序.重启数据库可以释放临时表空间,如果不能重启实例, ...

最新文章

  1. HDoj-1042 大数阶乘
  2. 《分布式操作系统》知识点(1~7)一
  3. vectorvectorint 二维容器编程
  4. 【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)
  5. 【Linux系统编程】线程堆栈大小的使用介绍
  6. 【19行代码AC,简洁】1029 Median (25 分)
  7. Haar、pico、npd、dlib等多种人脸检测特征及算法结果比较
  8. 数据结构与算法专题——第九题 外排序
  9. nacos 本地测试_本地调试和服务器调试都无法连通-问答-阿里云开发者社区-阿里云...
  10. iOS直播点赞动画,iOS直播心型点赞动画
  11. 堆插入和删除的简单实现
  12. ip变更会影响账号登陆吗_代理IP的匿名度级别会影响自身稳定性吗
  13. 牛客SQL题解 - 查找employees表
  14. 站在搜索引擎的视角看ASO,aso商店搜索引擎优化
  15. 如何开启IIS7以上的“IIS6管理兼容性”
  16. RADASM中使用DOSBOX来运行DOS/BIOS程序(16位)
  17. 苹果闪存性能测试软件,IphoneXS64GB VS 256GB 性能测试?,苹果不想让你知道的事!...
  18. python绘制分形图形教程_#python绘制分形图形教程#如何用Python绘制Circos图
  19. HTTP概念协议报文结构请求响应数据报分析
  20. kali linux u盘 live,Kali Linux Live U盘安装过程

热门文章

  1. 保证MQ消费消息的幂等性,真可以用版本号的方式?
  2. Kotlin 风险高、RxJava 已过时,Android 原生开发现状分析!
  3. 一文足以了解什么是 Java 中的锁
  4. 突发!程序员!快别闷头学Python了!
  5. 彻底征服 Entity Framework Core 优化!
  6. 时至今日,百度无人车还好吗?
  7. 用脚踹?地震火灾中,如何快速打开人脸识别闸机门?
  8. 黑客少年手机编 10 万行代码,恶意篡改 App 只为了 “炫技”?
  9. 网易考拉的服务架构如何从单体应用走向微服务化? | 技术头条
  10. Java、JS、C++ 依然强势,Go、Kotlin 等新语言为何不能破局?