转自:http://www.cnblogs.com/treeyh/archive/2008/07/01/1232845.html
EXCEPT
从 EXCEPT 操作数左边的查询中返回右边的查询未返回的所有非重复值。
INTERSECT
返回 INTERSECT 操作数左右两边的两个查询均返回的所有非重复值。
A. 使用 EXCEPT
在示例中使用 TableA 和 TableB 中的数据。
TableA (col1 int) | TableB (col1 int) |
---|---|
NULL | NULL |
NULL | 1 |
NULL | 3 |
1 | 4 |
2 | 4 |
2 | |
2 | |
3 | |
4 | |
4 |
以下查询从EXCEPT
操作数左侧的查询返回右侧查询没有找到的所有非重复值。
SELECT * FROM TableA EXCEPT SELECT * FROM TableB; |
下面是结果集:
Col1 ----------- 2 (1 row(s) affected) |
B. 使用 INTERSECT
在示例中使用 TableA 和 TableB 中的数据。
TableA (col1 int) | TableB (col1 int) |
---|---|
NULL | 2 |
NULL | 2 |
NULL | 2 |
1 | 4 |
2 | 4 |
2 | |
2 | |
3 | |
4 | |
4 |
以下查询返回INTERSECT
操作数左右两侧的两个查询均返回的所有非重复值。
SELECT * FROM TableA INTERSECT SELECT * FROM TableB; |
下面是结果集:
Col1 ----------- 2 4 (2 row(s) affected) |