博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 中关于EXCEPT和INTERSECT的使用方法
阅读量:4358 次
发布时间:2019-06-07

本文共 1087 字,大约阅读时间需要 3 分钟。

熟练使用SQL Server中的各种使用方法会给查询带来非常多方便。今天就介绍一下EXCEPT和INTERSECT。注意此语法仅在SQL Server 2005及以上版本号支持。

EXCEPT是指在第一个集合中存在,可是不存在于第二个集合中的数据。

INTERSECT是指在两个集合中都存在的数据。

測试例如以下:

create table t1(id int,mark char(2)) go create table t2(id int,mark char(2)) go insert into t1 select 1,'t1' union all select 2,'t2' union all select 3,'t3' union all select 4,'t4' go insert into t2 select 2,'t2' union all select 3,'m3' union all select 5,'m5' union all select 6,'t6' go select * from t1 EXCEPT select * from t2 go select * from t1 INTERSECT select * from t2 go --EXCEPT结果集为 --1 t1 --3 t3 --4 t4 --INTERSECT结果集为 --2 t2

 

 

EXCEPT和INTERSECT的优先级:

为了測试它们之间的优先级,执行以下的測试代码:

create table t3(int id,mark char(2)) go insert into t3 select 3,'t3' union all select 3,'r3' union all select 5,'m5' union all select 5,'r5' union all select 7,'b7' union all select 8,'b8' go select * from t1 EXCEPT select * from t2 INTERSECT select * from t3 --执行结果 --1 t1 --2 t2 --3 t3 --4 t4

 

为什么会出现如上结果呢,请看以下的运行计划:

ExceptIntersect

 

原来t2和t3先进行的INTERSECT运算,得出5 m5结果集,再和t1进行EXCEPT运算。

 

如需转载,请注明本文原创自CSDN TJVictor专栏:

 

转载于:https://www.cnblogs.com/mfrbuaa/p/3924275.html

你可能感兴趣的文章
PostgreSQL9.1 with PostGIS 2.1.4 for mapping coordinates on linux/ubuntu 已经打包成deb 可下载...
查看>>
[LeetCode] Max Consecutive Ones
查看>>
redis缓存本地安装教程
查看>>
ALTER AVAILABILITY GROUP (Transact-SQL)
查看>>
探究X Window System运行原理与启动过程
查看>>
Arch 安装 gnome桌面
查看>>
SpringCloud学习笔记(9)----Spring Cloud Netflix之声明式 REST客户端 -Feign的使用
查看>>
Python的平凡之路(17)
查看>>
Git for Windows之使用SSH协议开通公钥免密登陆功能
查看>>
Identity Server4学习系列一
查看>>
计算机硬件-基础
查看>>
完成登录功能,用session记住用户名
查看>>
C++ code:剩余串排列
查看>>
网页播放器插件
查看>>
Python第三方库jieba(中文分词)入门与进阶(官方文档)
查看>>
【转】eclipse for java ee的tomcat配置(常见问题解决)
查看>>
QQMacMgr for Mac(腾讯电脑管家)安装
查看>>
特效:ListBox数据加载特效
查看>>
php分页功能limit
查看>>
PHP中开启和关闭错误信息的提示
查看>>