MINUS使用方法(sql优化)

oracle 专栏收录该内容
1 篇文章 0 订阅

查A表

select t.* from test_a t;

这里写图片描述
查B表

select t.* from test_b t;

这里写图片描述

要比较A和B的差异 两个逻辑 B在A中没有的数据就是name:A,B ,语法:

select name from TEST_A minus select name from TEST_B ;

结果集:
这里写图片描述
另一个逻辑,B比A多的数据,就是A中没有的数据,语法:

select name from TEST_B minus select name from TEST_A ;

结果集:
这里写图片描述
minus 语法对于对比一个字段的差异(增加或减少)的数据的比较特别实用,但是如果
select id,name from TEST_A minus select id,name from TEST_B ;像这样我们查了两个字段,就是指这两个字段都不一样的
这里写图片描述
查出就是这样的形式 A表的5条数据都是和B表不一样的(id和name对应不一样),所以A表都会查出来,相反我们调换AB表的位置

select id,name from TEST_B minus select id,name from TEST_A;

这里写图片描述
查出的自然是B表的所有


问题来了:为什么我们不用in ,not in 或者exists,not exists?

慢!!!!!!慢!!!!!!!!!!

in花费的时间 对比用 minus 的速度是 minus 的 15倍

  • 2
    点赞
  • 1
    评论
  • 11
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值