SQL Server 2005中Except和Intersect的用法示例-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

简介: 语法: { | ( ) } { EXCEPT | INTERSECT } { | ( ) }     说明: 比较两个查询的结果,返回非重复值。

语法:

{ <query_specification> | ( <query_expression> ) } { EXCEPT | INTERSECT } { <query_specification> | ( <query_expression> ) }

 

 

说明:

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

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

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章