SQL Server 数据集之间的运算

数据集
关系数据库起源于数学中的集合概念,所以集合与集合之间,也同样继承了数学集合之间的运算。数据集可以是一张表,一张表的子集,多张表,临时表变量,虚拟列,scalar值

 

数据集运算的种类
在T-SQL中,关系运算实际上可以分为4类,这里有个例子:
分别为两个不同会议参加人员的记录,分为Meeting1和Meeting2,如下

 

1.A∩B,取A和B的交集,也就是相同的数据 

 2.A∪B,取A和B的并集,也就是两个表的数据相加

3.A-B,取A和B的补集,也就是取A有的,在B没有的数据;B-A功能一样,意义相反,取B有的,A没有的数据。

 

 

数据集的运算条件
并不是所有的数据集都可以做运算,就像一个苹果+一个压力不能等于2一样,在T-SQL中,数据集之间的运算需要满足3个条件:
1.两个数据集之间必须有相同数量的列
2.两个数据集之间的列顺序应该一一对应
3.每个对应的列都得是数据类型一致
说白了就是,两个数据集之间的运算,对应的列都要一毛一样

 

数据集运算在T-SQL中的实现
1.A∪B 使用UNION实现
UNION表示了A∪B的关系 ,当遇到两个数据集中相同的行时,保留唯一一个

UNION ALL同样表示了A∪B的关系,但与UNION不同的是,当遇到两个数据集中重复的行,全部保留 

2.A∩B,使用INTERSECT关键字来实现 

3.A-B,使用EXCEPT实现 

数据集运算的别名和排序

如果没有为数据列指定别名,则按照第一个数据集中对应的列名来算。

比如上面说的例子表,Meeting1的列名为name和age,Meeting2的列名为name2和age2

 

如果我们想自定义别名,则需要为数据集运算中出现在第一位的数据集指定别名 

 

对运算之后的结果进行排序是一件非常简单的事,只需要在运算的最后加上ORDER BY子句。

1.排序是针对整个数据集运算后的最终结果进行排序的,并不是针对单个数据集

2.ORDER BY后面排序的z字段名称s是第一个数据集的字段名或别称

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值