专栏首页测试开发架构之路分分钟搞懂union与union all

分分钟搞懂union与union all

SQL UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

一、前期准备:

drop table if exists empCN;
create table empCN (ID INT,Name VARCHAR(20));

drop table if exists empUSA;
create table empUSA (ID INT,Name VARCHAR(20));

-- 插入数据
insert into empCN(ID,Name) VALUES(1,'ZhangHua');
insert into empCN(ID,Name) VALUES(2,'WangWei');
insert into empCN(ID,Name) VALUES(3,'Cart Thomas');
insert into empCN(ID,Name) VALUES(4,'YangMing');


insert into empUSA(ID,Name) VALUES(1,'Adams John');
insert into empUSA(ID,Name) VALUES(2,'Bush George');
insert into empUSA(ID,Name) VALUES(3,'Cart Thomas');
insert into empUSA(ID,Name) VALUES(4,'Gates Bill');


-- 增加Column
Alter table empCN ADD COLUMN(score int);
Alter table empUSA ADD COLUMN(score int);
UPDATE empcn set score=20 where ID=1;
UPDATE empcn set score=60 where ID=2;
UPDATE empcn set score=80 where ID=3;
UPDATE empcn set score=90 where ID=4;

UPDATE empusa set score=20 where ID=1;
UPDATE empusa set score=45 where ID=2;
UPDATE empusa set score=29 where ID=3;
UPDATE empusa set score=68 where ID=4;

  二、操作语句

-- 区分UNION 与 UNION ALL
-- union 消除重复数据
SELECT * FROM empCN
UNION
SELECT * FROM empusa;

-- 重复数据同样显示
SELECT * FROM empCN
UNION ALL
SELECT * FROM empusa;

-- 数据求和 必须为UNION ALL后的数据加 表别名alisa
SELECT id,name,sum(score) FROM
(SELECT * FROM empCN
UNION ALL
SELECT * FROM empusa) a
group by id,name;

  三、结果分析

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 前端之bootstrap模态框

      简介:模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。...

    互联网金融打杂
  • 大话移动通信(一)

    数字系统由于模拟系统:长距离传输没有噪声叠加;便于保密。 贝尔电话之  接收信号 何为信号?信号的时域概念 周期信号:正弦波(单一频率) 信号的频域概念:电磁信...

    互联网金融打杂
  • 分分钟搞懂rank() over(partition by)的使用Spark2 Dataset分析函数--排名函数row_number,rank,dense_rank,percent_rank

    一、rank() over(partition by ...order by) 解释:partition  by用于给结果集分组,如果没有指定那么它把整个结果集...

    互联网金融打杂
  • 项目中如何设计通用的评论模块

    转载:猿天地 链接:http://cxytiandi.com/blog/detail/2289 猿天地在做完博客功能后,就有小伙伴提出了文章下不能评论啊,怎...

    猿天地
  • SQL UNION 和 UNION ALL

    总结SQL UNION的用法与UNION 和 UNION ALL的区别,并指出对应的场景以及可能出现的问题解决。

    董可伦
  • 微信公开课:看张小龙演讲的感悟!

    先说一下题外话,不知道你有没有发现呢,是不是觉得有什么不一样了呢?哈哈,机智如你一定发现了,咱们的头像更换了,今天花了很多时间想找个新的头像的,换来换去发现本月...

    良月柒
  • Ubuntu安装微信开发者工具

    悟空聊架构
  • Ubuntu安装微信开发者工具

    悟空聊架构
  • SAP云平台CloudFoundry上部署了一个应用的技术明细

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/detai...

    Jerry Wang
  • Qt编写自定义控件30-颜色多态按钮

    这个控件一开始打算用样式表来实现,经过初步的探索,后面发现还是不够智能以及不能完全满足需求,比如要在此控件设置多个角标,这个用QSS就很难实现,后面才慢慢研究用...

    feiyangqingyun

扫码关注云+社区

领取腾讯云代金券