天天看点

SQL Server 2005中Except和Intersect的用法示例

语法:

{ <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