Oracle数据库中,MINUS是一个关键字
在Oracle数据库中,MINUS
是一个关键字,用于执行两个SELECT
语句的差集操作。MINUS
操作返回在第一个SELECT
语句中出现但不在第二个SELECT
语句中出现的所有行。换句话说,它会从第一个查询结果中减去第二个查询结果,只保留在第一个查询结果中存在而第二个查询结果中不存在的记录。
基本用法
MINUS
操作符的语法如下:
sql复制代码
SELECT column1, column2, ... | |
FROM table1 | |
MINUS | |
SELECT column1, column2, ... | |
FROM table2; |
这个查询将返回在table1
中出现但不在table2
中出现的所有行。需要注意的是,MINUS
要求两个查询结果具有相同的列数和相同的数据类型,且是按列进行比较的。此外,MINUS
操作后的结果集会自动去重,即如果第一个查询结果中有多条相同的记录,在MINUS
操作后只会保留一条对应的记录。
示例
假设我们有两个表A和B,它们的结构如下:
表A:
ID | NAME |
---|---|
1 | John |
2 | Jane |
3 | Mike |
表B:
ID | NAME |
---|---|
1 | John |
3 | Mike |
4 | Lisa |
我们可以使用MINUS
来找出只存在于表A中的行,而不在表B中的行:
sql复制代码
SELECT ID, NAME FROM A | |
MINUS | |
SELECT ID, NAME FROM B; |
执行上述查询后,将返回以下结果:
ID | NAME |
---|---|
2 | Jane |
这是因为只有ID为2的行(Jane)存在于表A中,而不存在于表B中。
注意事项
MINUS
不对结果进行排序,如果需要排序的结果,可以在外层再包裹一个ORDER BY
语句。MINUS
要求两个查询结果集的列数和对应列的数据类型必须匹配,否则将无法进行差集操作。- 在使用
MINUS
时,如果第二个查询结果集中有NULL值,那么这些NULL值不会影响差集的结果,因为NULL在比较时被认为是未知的,不会匹配任何值(包括另一个NULL)。
MINUS
是Oracle数据库特有的操作符,在其他数据库系统中可能不存在或具有不同的实现方式。
__EOF__

本文作者:一念轮回
本文链接:https://www.cnblogs.com/lbzwd/p/18363769.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/lbzwd/p/18363769.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下