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

语法:

{ | ( ) } { EXCEPT | INTERSECT } { | ( ) }

 

 

说明:

比较两个查询的结果,返回非重复值。

EXCEPT 从左查询中返回右查询没有找到的所有非重复值。(如图一的蓝色部分)

INTERSECT 返回 INTERSECT 操作数左右两边的两个查询都返回的所有非重复值。(如图二的中间红色部分)

 

 

 

图一:图一:

 

图二:图二:

 

 

 

 

注意事项:

查询规范或表达式不能返回 xmltextntextimage 或非二进制 CLR 用户定义类型列,因为这些数据类型不可比较。

 

所有查询中的列数和列的顺序必须相同。

数据类型必须兼容。

 

通过比较行来确定非重复值时,两个 NULL 值被视为相等。

EXCEPT INTERSECT 返回的结果集的列名与操作数左侧的查询返回的列名相同。

 

 

 示例如下:

 

A表 B表
Field_A  (int) Field_B  (int)
1 1
2 2
3 2
3 4
4 NULL
NULL 5

 

 

查询语句一:

select * from A except select * from B

 

 

结果:

3

 

 

 

查询语句二:

select * from A intersect select * from B

 

 

结果:

NULL 1 2 4

 

你可能感兴趣的:(数据库)