Oracle 排除交集数据 MINUS

MINUS 是 Oracle 数据库中的一种集合操作符,用于返回第一个查询结果中存在但第二个查询结果中 不存在 的 唯一行。其核心功能是 排除交集数据,常用于数据差异分析或过滤特定记录

一、核心功能

  1. 排除交集:返回第一个查询结果中 不在第二个查询结果中出现的行

  2. 自动去重:结果集中的每行数据唯一(即使原查询结果有重复)。

  3. 排序输出:默认按第一列升序排序(除非显式指定 ORDER BY)。

 SELECT column1, column2, ... FROM table1
MINUS
SELECT column1, column2, ... FROM table2
[ORDER BY column1, column2, ...];

关键规则

  • 列数与类型匹配:所有 SELECT 语句的列数必须相同,对应列的数据类型必须兼容。

  • 列名以第一个查询为准:最终结果集的列名由第一个 SELECT 语句决定。

 场景 :数据迁移验证

-- 检查旧表中有但新表中缺失的记录
SELECT product_id FROM old_inventory
MINUS
SELECT product_id FROM new_inventory;

二、与相似操作的对比

操作符功能是否去重是否排序
MINUS返回第一个查询存在但第二个查询不存在的行是(默认)
NOT EXISTS通过子查询排除匹配行
LEFT JOIN ... WHERE b.key IS NULL类似 MINUS,但保留左表所有未匹配行

特性说明
功能返回第一个查询中存在但第二个查询中不存在的唯一行。
去重自动去除重复行。
排序默认按第一列升序排序,可通过 ORDER BY 自定义。
性能优化优先使用索引,考虑替代方案(如 NOT EXISTS 或 LEFT JOIN)处理大数据集。
适用场景数据差异分析、排除特定记录、数据完整性验证等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿与狸花过一生

盛时常作衰时想 上场当念下场时

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值