SQL MINUS, SQL EXCEPT

SQL MINUS查询或SQL EXCEPT查询用于从第一个查询结果中减去第二个查询中的结果。它首先用第一个查询语句形成唯一不同值的结果集,然后过滤掉那些出现在第二个查询语句中的结果。如果第二个查询中包含的记录不在第一个查询结果中,这些记录将被忽略掉。

两个查询语句应该有相同的列结构:数目相同的列,相同或相容的数据类型并且是相同的序列。

有些数据库使用SQL MINUS,而有些数据库使用SQL EXCEPT。请在使用前查阅文档确认。对于一些常用的数据库,这里是一个快速参考:MS SQL Server 使用 SQL EXCEPT, Oracle 使用 SQL MINUS, mySQL 不支持它们中的任何一个。

注: SQL MINUS查询或SQL EXCEPT查询的结果是唯一不同的值(distict value)。

SQL MINUS查询或SQL EXCEPT查询语法

SELECT Column(s) FROM 表1
MINUS
SELECT Column(s) FROM 表2

或者

SELECT Column(s) FROM 表1
EXCEPT
SELECT Column(s) FROM 表2

SQL MINUS查询或SQL EXCEPT查询范例

数据表: Table1

ID ClientName
1 Yoiia
2 Hiyfad
3 Miofa
4 Suiaf

数据表: Table2

ID ClientName
1 Yoiia
2 Hiyfad
5 Uifdad
6 Joyfa
SELECT ID, ClientName FROM Table1
MINUS
SELECT ID, ClientName FROM Table2

结果会类似于:

ID ClientName
3 Miofa
4 Suiaf