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 |