SQL中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

[/code]

两个表的初始结果如下


非常简单的两个表
,
列数和列顺序一样
.
而数据中有一条数据相同
,
这里的相同时完全相同
,
包括主键
,
我这里的主键是标识列
,
所以插入的顺序也一样
,
若不是标识列
,
则随意
,
只要保证
有数据完全一致
,
就可以说他们是重复的数据
,
这样用上面
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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值