语法:
{ <query_specification> | ( <query_expression> ) }
{ EXCEPT | INTERSECT }
{ <query_specification> | ( <query_expression> ) }
说明:
比较两个查询的结果,返回非重复值。
EXCEPT
从左查询中返回右查询没有找到的所有非重复值。(如图一的蓝色部分)
INTERSECT
返回 INTERSECT
操作数左右两边的两个查询都返回的所有非重复值。(如图二的中间红色部分)
图一:
图二:
注意事项:
查询规范或表达式不能返回 xml、text、ntext、image
或非二进制 CLR
用户定义类型列,因为这些数据类型不可比较。
所有查询中的列数和列的顺序必须相同。
数据类型必须兼容。
通过比较行来确定非重复值时,两个 NULL
值被视为相等。
或 INTERSECT
返回的结果集的列名与操作数左侧的查询返回的列名相同。
示例如下:
A表 | B表 |
Field_A (int) | Field_B (int) |
1 | |
2 | |
3 | |
4 | |
NULL | |
5 |
查询语句一:
select * from A
except
select * from B
结果:
查询语句二:
intersect