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 EXISTSLEFT JOIN)处理大数据集。
适用场景 数据差异分析、排除特定记录、数据完整性验证等。
相关推荐
小蒜学长3 分钟前
springboot党建云课堂学习与管理系统(代码+数据库+LW)
java·数据库·spring boot·后端·学习
2601_962180333 分钟前
FlinkCDC 实现 MySQL 数据变更实时同步
数据库·mysql
2601_962189607 分钟前
深入浅出MySQL:概述与体系结构解析
数据库·mysql
Gain_chance13 分钟前
大数据毕业设计实战|Data Insight Platform:用 FastAPI + ClickHouse 打造低门槛全链路数据洞察平台
大数据·数据库·clickhouse·毕业设计·fastapi
harmony&1 小时前
ETCD 存储系统实战:从单节点部署到 Kubernetes 高可用集群
数据库·kubernetes·etcd
2601_962066491 小时前
【玩转全栈】----Django模板的继承
数据库·django·sqlite
一只小bit2 小时前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
zlwool9 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
小灰灰搞电子10 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
软件聚导航12 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag