博客
关于我
minus
阅读量:484 次
发布时间:2019-03-07

本文共 674 字,大约阅读时间需要 2 分钟。

Oracle的minus操作确实对结果进行了两个默认操作:首先过滤掉A中与B相等的记录,然后对结果进行去重。为了避免这两个行为,可以采用以下两种方法:

方法一:使用not exist子句

通过在A中筛选出表A中存在但表B中不存在对应记录的数据,可以避免去重。这种方法的具体实现如下:

select A.* from Awhere not exists (    select 1    from B    where A.c1 = B.c1    .......);

这种方法确保仅保留A中在B中没有对应记录的行,从而有效避免了minus的去重操作。然而,需要注意这个子句的执行方式是Case Sensitive的,需要谨慎处理数据,避免因Case敏感性导致的误操作。

方法二:使用left join

结合left join和where子句,可以在A和B左连接后筛选出A中存在但B中不存在对应记录的行。具体示例如下:

select A.*from Aleft outer join Bon A.c1 = B.c1and ..... where B.c1 is null;

这种方法通过左连接保留A中所有行,然后利用where子句排除B中c1不为null的记录。在大型数据集上,left join可能带来较高的性能消耗,因此需要合理设计索引来优化性能。

总结一下,选择哪一种方法取决于具体的数据迁移场景和性能要求。在处理巨量数据时,consider使用适当的索引优化和表结构设计以提升执行效率。可以将具体的优化策略结合两种方法,根据实际需求进行调整。

转载地址:http://urncz.baihongyu.com/

你可能感兴趣的文章
C#实现对象为Json嵌套数组文件的创建
查看>>
静态数组类的封装(泛型)
查看>>
网络穿透/网络映射/远程运维EasyNTS智能云组网如何通过23端口穿透实现远程控制功能?
查看>>
【BUG修复】网络映射/端口穿透/视频组网服务EasyNTS上云网关代理前端数据无法解析问题
查看>>
CHIP-seq流程学习笔记(4)-call peak 软件macs2
查看>>
操作记录-2021-03-15: sunxiaoyu_project
查看>>
Android DEX加固方案与原理
查看>>
Glide源码解析06-Glide流程图
查看>>
Android Retrofit2.0 上传单张图片和多张图片
查看>>
C语言-共用体
查看>>
报纸的配送方式:订阅发布模式
查看>>
android 常用的代码
查看>>
创世纪无盘系统常见故障的解决
查看>>
Yii使用smarty模板
查看>>
Eclipse的基本使用配置
查看>>
tomcat服务器
查看>>
vue 导出Excel乱码问题解决方案
查看>>
eggjs validate no function 解决方案
查看>>
eggjs Unknown column ‘createdAt‘ in ‘field list‘ 报错解决方案
查看>>
Permission denied 解决方案
查看>>