SQL Server 中对于结果集有几个处理,值得讲解一下

1. 并集(union,Union all)

这个很简单,是把两个结果集水平合并起来。例如

SELECT * FROM A

UNION

SELECT * FROM B

【注意】union会删除重复值,也就是说A和B中重复的行,最终只会出现一次,而union all则会保留重复行。

2. 差异(Except)

就是两个集中不重复的部分。例如

SELECT * FROM A

EXCEPT

SELECT * FROM B

这个的意思是,凡是不出现在B表中的A表的行。

3. 交集(intersect)

就是两个集中共同的部分。例如

SELECT * FROM A

INTERSECT

SELECT * FROM B

这个的意思是,同时出现在A和B中的记录

本文由作者:陈希章 于 2009/6/26 18:31:02 发布在:http://www.cnblogs.com/chenxizhang/
本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
本文是使用博客同步和管理系统自动于2009/6/26 18:31:04 从 陈希章@博客园 同步过来的。原文地址: http://www.cnblogs.com/chenxizhang/archive/2009/06/26/1511889.html ,发表于2009/6/26 10:31:00.

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen_xizhang/archive/2009/06/26/4301621.aspx

union, EXCEPT 和 INTERSECT使用方法:

SQL中的UNION, EXCEPT 和 INTERSECT做下演示:

这三个放在一起是有理由的,因为他们都是操作两个或多个结果集,并且这些结果集有如下限制:
  • 所有查询中的列数和列的顺序必须相同.
  • 数据类型必须兼容.

并且它们都是处理于多个结果集中有重复数据的问题

首先还是创建测试环境

use tempdb

create table tempTable1 (id int primary key identity, price int)
create table tempTable2 (id int primary key identity, price int)
insert into tempTable1 select 3 union all select 1 union all select 2 union all select 3 
insert into tempTable2 select 3 union all select 4 union all select 1 union all select 2

select * from temptable1
select * from temptable2

两个表的初始结果如下

非常简单的两个表,列数和列顺序一样. 只要保证有数据完全一致,就可以说他们是重复的数据, 这样用上面3个运算词才会有效.

先来看看UNION和UNION ALL

select * from temptable1
union
select * from temptable2

select * from temptable1
union all
select * from temptable2

有 ALL 关键字是完全整合两个结果集,而无 ALL 是在之前的基础上去重了,所以第一个查询中{id:1, price:3}只会显示一条,结果如下:

在来看看EXCEPT, 也是去重的, 但是它在去掉两个或多个集合中重复数据的之后, 只会保留第一个结果集中的数据

select * from temptable1
except
select * from temptable2

其实也是查询表A, 看表A的数据在表B中是否存在, 如果存在, 则删掉

而INTERSECT比较好理解, 就是查询两个结果集的并集, 利用上面的数据,查询到的结果只有一条, 就是{id:1, price:3}, 这里就不给出代码和结果图

SQL SERVER: 合并相关操作(Union,Except,Intersect)相关推荐

  1. sql server 2005中的except和INTERSECT运算

    sql server 2005中的except和INTERSECT运算 一直学数据库的都知道,关系运算有交,差,并,等运算,而之前的版本一直只看到并,好象很少看到有差,交的运算显式的表达在操作SQL语 ...

  2. Sql Server 内存相关计数器以及内存压力诊断

    原文:Sql Server 内存相关计数器以及内存压力诊断 在数据库服务器中,内存是数据库对外提供服务最重要的资源之一, 不仅仅是Sql Server,包括其他数据库,比如Oracle,MySQL等, ...

  3. Linux上SQL Server合并复制

    Replication is a process to manage multiple copies of the same data at a different node. Microsoft S ...

  4. sql server合并行_合并SQL Server复制参数化的行筛选器问题

    sql server合并行 In this article we will discuss about SQL Server Merge Replication Parameterized row f ...

  5. sql server 快照_在SQL Server合并复制中应用快照时出现外键问题

    sql server 快照 This article will review specific SQL Server merge replication issues related to forei ...

  6. 收集的SQL Server性能相关资料

    这是本人在工作中整理的关于SQL Server性能相关资料,便于随时查阅 目录 性能监视器指标 内存问题诊断 侦测 CPU 压力 磁盘相关 内存 Memory Clerks Buffer Pool P ...

  7. SQL Server 日期相关

    [置顶] SQL Server 日期相关 标签: sql serversqlserver 日期日期转换日期操作date 2012-06-13 01:25 11002人阅读 评论(12) 收藏 举报   ...

  8. [翻译]一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)

    上一篇:一步步教你配置 SQL SERVER合并复制(四)设置Distributor的安全 (译者注:本篇内容较多也是合并复制最重要的一个环节之一,因此配置Publisher将分成两个章节来翻译)   ...

  9. [翻译]一步步教你配置SQL SERVER合并复制(四)提高Distributor的安全性

    上一篇:一步步教你配置SQL SERVER合并复制(三)配置Distributor 为了让已订阅数据库的设备能够更好地去联系Distributor,你必须在数据库中添加一个域用户,让设备能够通过这个用 ...

  10. SQL Server远程连接操作

    SQL Server远程连接操作 -- 开启远程选项 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure ...

最新文章

  1. Python,Opencv cv2.Canny()边缘检测
  2. Xcode 5 Error CertUIFramework.axbundle
  3. pom.xml中spring-boot-starter-test包的使用
  4. linux cp 命令使用一角
  5. 上海交通大学2006年数学分析考研试题
  6. realloc函_[转载]realloc函数的使用及注意事项(转)
  7. Django echarts初试随笔
  8. 利用opencv从USB摄像头获取图片
  9. python设置环境变量_小白Python进行中
  10. SDN的机遇与挑战 让宽带利用率与硬件不再是难题
  11. Docker教程小白实操入门(4)--如何停止一个容器
  12. SQL查询1-12月的数据
  13. java实现供应链_基于jsp的企业物流供应链-JavaEE实现企业物流供应链 - java项目源码...
  14. 服务器显示屏 超出工作频率范围,Win10显示器显示超出工作频率范围解决方法
  15. 蜂巢网格生态护坡材料,我们一直在努力
  16. exsi rh2288hv5 驱动_华为RH2288H V5服务器windows 2012阵列卡驱动
  17. 及时尽孝,别枉读了大学
  18. python 编辑器 pycharm
  19. bootstrap搭建后台管理页面
  20. lwip源码分析 之 DHCP协议实现(一)

热门文章

  1. Eclipse找不到或无法加载主类
  2. android studio for android learning (十三) 一个简单的图片查看器示例
  3. 计算机图形学完整笔记(八):曲线曲面 - 2
  4. 如何在 Codeforces 上出题?
  5. LaTeX 引用表格、照片、公式的时候自动添加 table,fig,equ
  6. css background 旋转_纯CSS画小电视
  7. eja智能压力变送器工作原理_EJA智能压力变送器
  8. 全局配置_再次强调:必须站在全局的角度去考虑客厅的内机配置
  9. 数据库管理(事务、ACID、并发、封锁、可串行化、隔离)
  10. CSS之cursor用法