博客
关于我
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/

你可能感兴趣的文章
In App Purchase Verification using PHP
查看>>
Mapper.xml中新增数据并返回主键ID(MYSQL)
查看>>
shell编程===》进程锁
查看>>
教你如何一招破解简单的joy.dex的卡密系统(Auto.js)
查看>>
Linux小操作LVM
查看>>
Split返回数组元素含有空字符串移除
查看>>
解决VS中C语言运行scanf错误
查看>>
Java注解
查看>>
idea上的程序报错-> 错误: 找不到或无法加载主类
查看>>
java--07整数反转
查看>>
SQLServer 安装提示需要重启计算机的解决方案
查看>>
java刷题--49字母异位词分组
查看>>
《web安全入门》(四)前端开发基础Javascript
查看>>
laravel中视图模板的表单提交
查看>>
在Ubuntu上检查一个软件包是否安装命令
查看>>
Walle-瓦力上线部署安装以及遇到的问题
查看>>
mysql的group by ,order by语句的使用
查看>>
call_user_func函数和call_user_func_array函数
查看>>
配置php.ini文件,关闭错误提示,打开错误日志,设置错误日志路径
查看>>
接收get或post数据使用fwrite写入文件中,方便追踪错误;或其他几种缓存方式
查看>>