SQL中的MINUS运算符用于从一个表中减去另一个表中的行,返回两组行之间的差集:语法:SELECT FROM table1 MINUS SELECT FROM table2差异与EXCEPT:MINUS运算符会消除重复行,而EXCEPT不会。

SQL 中 MINUS 运算符的用法
MINUS 运算符的含义:
MINUS 运算符在 SQL 中用于从一个表中减去另一个表中的行。它返回两组行之间的差集,即存在于第一组行中但不属于第二组行中的行。
语法:
SELECT * FROM table1 MINUS SELECT * FROM table2;
其中:
-
table1是要减去的表。 -
table2是要从table1中减去的表。
示例:
在整本书中我们所涉及许多的Flex框架源码,但为了简洁,我们不总是显示所指的代码。当你阅读这本书时,要求你打开Flex Builder,或能够访问Flex3框架的源码,跟随着我们所讨论源码是怎么工作及为什么这样做。 如果你跟着阅读源码,请注意,我们经常跳过功能或者具体的代码,以便我们可以对应当前的主题。这样能防止我们远离当前的主题,主要是讲解代码的微妙之处。这并不是说那些代码的作用不重要,而是那些代码处理特别的案例,防止潜在的错误或在生命周期的后面来处理,只是我们当前没有讨论它。有需要的朋友可以下载看看
假设我们有两个表:
**employees** | emp_id | emp_name | |---|---| | 1 | John Doe | | 2 | Jane Doe | | 3 | Mark Smith | **departments** | dept_id | dept_name | |---|---| | 10 | Sales | | 20 | Marketing |
如果我们想找到不属于任何部门的员工,我们可以使用以下查询:
SELECT * FROM employees MINUS SELECT * FROM departments;
查询结果将如下所示:
| emp_id | emp_name | |---|---| | 3 | Mark Smith |
MINUS 与 EXCEPT 的区别:
MINUS 和 EXCEPT 运算符在 SQL 中都用于从一组行中减去另一组行。然而,它们之间存在一个关键区别:
- MINUS 会消除重复行,而 EXCEPT 不会。
因此,在上面示例中,如果员工表中有两行包含 Mark Smith 的信息,MINUS 查询将只返回一行,而 EXCEPT 查询将返回两行。









