当前位置:首页 » 《随便一记》 » 正文

SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解

22 人参与  2020年11月04日 00:00  分类 : 《随便一记》  评论

点击全文阅读


 

这篇文章主要介绍了SQL Server中的集合运算: UNION, EXCEPT和INTERSECT,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

SQL Server中的集合运算包括UNION(合并),EXCEPT(差集)和INTERSECT(相交)三种。

集合运算的基本使用

1.UNION(合并两个查询结果集,隐式DINSTINCT,删除重复行)

--合并两个提取表/派生表(derived table), 返回结果为:[a,b,c,d,e]
SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)
UNION
SELECT FC FROM (VALUES('a'),('b'),('c'),('d')) Table2 (FC)

2.UNION ALL(简单合并两个查询结果集,不删除重复行)

--提取表/派生表(derived table)可以是多列,列名、顺序可以不同,但列数必须相同
SELECT * FROM (VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('e','Elina')) Table1 (FC, Name)
UNION ALL
SELECT * FROM (VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('d','David')) Table2 (FC, Name)

3.EXCEPT(返回出现在第一个结果集但不出现在第二个结果集中的所有行)

--返回结果为:[e]
SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)
EXCEPT
SELECT FC FROM (VALUES('a'),('b'),('c'),('d')) Table2 (FC)

4.INTERSECT(返回第一个查询结果集和第二个查询结果集共有的部分)

--返回结果为:[a,b,c]
SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)
INTERSECT
SELECT FC FROM (VALUES('a'),('b'),('c'),('d')) Table2 (FC)

集合运算的使用场景

1.使用UNION代替Where子句中的OR,查询速度更快

--使用Where子句 + OR
SELECT name, population, area FROM world WHERE area > 3000000 OR population > 25000000

--使用UNION
SELECT name, population, area FROM world WHERE area > 3000000
UNION
SELECT name, population, area FROM world WHERE population > 25000000

2.使用EXCEPT和INTERSECT, 过滤出列表中不存在/存在于数据库中的项

假设存在表Customers, 数据如下表所示

--过滤出列表中不存在于数据库中的项

--返回结果为['1000000006','1000000007']
SELECT [Id] AS [cust_id] FROM
(
VALUES('1000000004'),('1000000005'),('1000000006'),('1000000007')
) dt ([Id])
EXCEPT
SELECT [cust_id] FROM [Customers]

--过滤出列表中存在于数据库中的项
--返回结果为['1000000004','1000000005']
SELECT [Id] AS [cust_id] FROM
(
VALUES('1000000004'),('1000000005'),('1000000006'),('1000000007')
) dt ([Id])
INTERSECT
SELECT [cust_id] FROM [Customers]

更多参考

Set Operators - EXCEPT and INTERSECT

Set Operators - UNION

到此这篇关于SQL Server中的集合运算: UNION, EXCEPT和INTERSECT的文章就介绍到这了,更多相关SQL Server中的集合运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:脚本之家

链接:https://www.jb51.net/article/192892.htm

申请创业报道,分享创业好点子。,共同探讨创业新机遇!


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/1120.html

<< 上一篇 下一篇 >>

最新文章

  • 抽卡后,气运之子怎么都缠上来了小说(夏挽棠)(抽卡后,气运之子怎么都缠上来了)全书+后续+结局在线阅读
  • 前传爱意随风消逝续集:全文+番外乔清浅宋轻舟:结局+番外新上热文
  • 宋昭黎陆铭绪(假如从没拥抱你)前文+全本完整阅读预售作品抢先看
  • 终章小说搬空海港!我携军舰嫁军官躺赢了完结篇(温婉历战)已更新+延伸(搬空海港!我携军舰嫁军官躺赢了)清爽版
  • 贵妻在上:废材老公来护航完结篇(贵妻在上:废材老公来护航)章节目录+章节前文(宋锦瑶霍少霆)全章无套路在线
  • 离婚后,前夫一家给我跪下了隐藏剧情_明白双宿双飞江城必读文_小说后续在线阅读_无删减免费完结_
  • 乔芊芊顾宴夜小说(乔芊芊顾宴夜)(踹了渣男后,禁欲大佬为我失控)前传+阅读全新作品预订
  • 假如从没拥抱你小说(宋昭黎陆铭绪)全本完整阅读最新章节(假如从没拥抱你)_笔趣阁
  • 特工医妃,摄政王的腹黑掌上欢前言+后续_苏清叙裴玄褚最新阅读_小说后续在线阅读_无删减免费完结_
  • 热文推荐绑定站姐系统后,我成娱乐巨头了附加(沈霁月沈暨星)(绑定站姐系统后,我成娱乐巨头了)最新章节列表
  • 爱你的事当做秘密惊天黑幕_鹿言裴禹连载_小说后续在线阅读_无删减免费完结_
  • 和前夫穿越后又重生了番外+结局(挽星阙靖安)小说在线阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1