当前位置: 首页 > news >正文

Sql Server中集合的操作(并集、差集、交集)学习

首先我们做一下测试数据

1、创建测试数据

--创建人员表1--
create table Person1
(
    Uid int identity(1,1) primary key,
    Name varchar(20) not null
)
--创建人员表2--
create table Person2
(
    Uid int identity(1,1) primary key,
    Name varchar(20) not null
)

--插入数据--
insert into Person1 values('曹操'),('郭嘉'),('典韦'),('孙权'),('周瑜')
insert into Person2 values('刘备'),('关羽'),('张飞'),('孙权'),('周瑜')

--查询数据--
select * from Person1
select * from Person2

2、测试数据查询结果如下

1)表1和表2的数据

3、集合中的并集、差集和交集

3.1、并集(union)

1)并集的定义

  Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。

2)限制条件
  2.1)子结果集要具有相同的结构。
  2.2)字结果集的列数必须相同。
  2.3)子结果集对应的数据类型必须可以兼容。
  2.4)每个子结果集不能包含order by和compute子句

3)  并集的使用

--1、并集 union  --

--1)去掉重复项的并集--
select Name from Person1
union 
select Name from Person2

--2)不去掉重复项的并集--
select Name from Person1
union all
select Name from Person2

4)查询的结果

3.2、差集(except)

1)差集的定义

  Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。

2) 限制条件

  2.1)子结果集要具有相同的结构。

  2.2)子结果集的列数必须相同

  2.3)子结果集对应的数据类型必须可以兼容。

  2.4)每个子结果集不能包含order by 和 compute子句。

3)差集的使用

--Except 差集---
select Name from Person1 
except
select Name from Person2

4)查询的结果

3.3 、交集(InterSect)

1)交集的定义

  InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边结果集和右边结果集中都有的记录

2)限制条件

  2.1)子结果集要具有相同的结构。

  2.2)子结果集的列数必须相同

  2.3)子结果集对应的数据类型必须可以兼容。

  2.4)每个子结果集不能包含order by 和 compute子句。

3)交集的使用

--InterSect 交集--
select * from Person1 
InterSect
select * from Person2

4)查询的结果

参考网址:

http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html

转载于:https://www.cnblogs.com/xielong/p/7151882.html

相关文章:

  • Linux下汇编语言学习笔记1 ---
  • angularJs-route路由详解
  • python 博客
  • P1198 [JSOI2008]最大数(单调栈)
  • Windows内存管理的方式
  • [POJ2104]K-th Number
  • window10 java 环境变量配置
  • Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
  • STC15F2K60S2与USART HMI串口屏之间的通信
  • 关于JAVA中包装类的是什么类型传递这个问题的笔记
  • 【洛谷1607】【USACO09FEB】庙会班车
  • 搭建wordpress-安装xshell
  • python基础2
  • POJ 1830 开关问题(高斯消元求解的情况)
  • Python3的一些基本输入输出
  • 【翻译】babel对TC39装饰器草案的实现
  • Angular数据绑定机制
  • C++11: atomic 头文件
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • crontab执行失败的多种原因
  • Druid 在有赞的实践
  • ES学习笔记(12)--Symbol
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Node项目之评分系统(二)- 数据库设计
  • Shadow DOM 内部构造及如何构建独立组件
  • SQLServer插入数据
  • Vue UI框架库开发介绍
  • 闭包--闭包作用之保存(一)
  • 大整数乘法-表格法
  • 工作中总结前端开发流程--vue项目
  • 欢迎参加第二届中国游戏开发者大会
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 前端面试之闭包
  • 让你的分享飞起来——极光推出社会化分享组件
  • 入手阿里云新服务器的部署NODE
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 如何正确理解,内页权重高于首页?
  • #100天计划# 2013年9月29日
  • #13 yum、编译安装与sed命令的使用
  • (2)MFC+openGL单文档框架glFrame
  • (6)设计一个TimeMap
  • (二)PySpark3:SparkSQL编程
  • (二)WCF的Binding模型
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (一)RocketMQ初步认识
  • .bat文件调用java类的main方法
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net Winform开发笔记(一)
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • ??在JSP中,java和JavaScript如何交互?
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!