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

GaussDB union 的用法

1 union 的作用


union 运算符用于组合两个或更多 select 语句的结果集。


2 union 使用前提


union 中的每个 select 语句必须具有相同的列数

  • 这些列也必须具有相似的数据类型
  • 每个 select 语句中的列也必须以相同的顺序排列

3 union 语法


select column_name(s) from table1
union
select column_name(s) from table2;
注释:默认情况下,union 运算符选择一个不同的值。如果允许重复值,请使用union all。

4 UNION ALL 语法

select column_name(s) from table1
union all
select column_name(s) from table2;
注释:UNION 结果集中的列名总是等于 UNION 中第一个 select 语句中的列 名。

5 示例数据


以下是"customers" 表中的数据:
csdn=> select * from customers;id |  name  |     addr      | city |  zip   | province
----+--------+---------------+------+--------+----------1 | 鲁智深 | 北京路27号    | 平凉 | 200000 | 甘肃省2 | 李四   | 南京路12号    | 杭州 | 310000 | 浙江市3 | 王五   | 花城大道17号  | 广州 | 510000 | 广州省4 | 马六   | 江夏路19号    | 武汉 | 430000 | 湖北省5 | 赵七   | 西二旗12号    | 北京 | 100000 | 北京市6 | 宋一   | 花城大道21号  | 广州 | 510000 | 广东省7 | 刘二   | 长安街 121 号 | 北京 | 100000 | 北京市8 | 宋江   | 梁山路1号     | 济南 | 250000 | 山东省| 武松   |               | 邢台 |        | 河北省10 | 韩信   | 梁山路1号     | 渝东 | 250001 | 四川省11 | 吕不韦 | 梁山路1号     | 渝中 | 250001 | 四川省
(11 rows)csdn=>

选自 "suppliers" 表的数据:

csdn=> select * from suppliers;id |   name   |     addr     | city |  zip   | province
----+----------+--------------+------+--------+----------1 | 沃尔玛   | 北京路35号   | 上海 | 200000 | 上海市2 | 家乐福   | 玄武街28号   | 南京 | 210000 | 江苏省3 | 永旺超市 | 花城大道21号 | 广州 | 710000 | 广东省4 | 宋江超市 | 梁山路1号    | 济南 | 250000 | 山东省
(4 rows)csdn=>

6 union 举证


以下 sql 语句从 "customers" 和"suppliers" 表中选择所有不同的城市(只有不同的值):

select city from customers
union
select city from suppliers;

结果:

注:

不能用 union来列出两个表中的所有城市。如果一些客户和供应商来自同一个城市,每个城市将只被列入一个列表。union 将只选择不同的值,即会排除重复数据只保留一个。请使用 union all 选择重复值!

7 union all 实例


以下 sql语句使用union all 从 "customers"和"suppliers" 表中选择所有城市(也是重复的值):

select city as "城市" from customers
union all
select city from suppliers;

结果:

8 带有 where 的 union all


以下 sql 语句使用 unionall 从"customers"和 "suppliers" 表中选择所有上海市的城市(也是重复数值):

举例:

select city as "城市", province as "省份" from customers
where province='广东省'
union all
select city, province from suppliers
where province='广东省';

结果:

9 带有 where 的union


以下 sql 语句从"客户"和"供应商"中选择所有不同的上海城市(只有不同的值):

select city as "城市", province as "省份" from customers
where province='广东省'
union
select city, province from suppliers
where province='广东省';


结果:

10 批注


union 就是将多段功能类似的 sql 连接起来,并且可以去掉重复的行,有distinct 的功能。union all 则只是单纯的将多段类似 sql 连接起来,而且他们的好处是可以将复杂 sql 按不同的功能或作用拆分成一小段 sql 进行拼接,可以有效提高查询效率。

http://www.dtcms.com/a/287394.html

相关文章:

  • Java NIO Selector高并发场景下CPU占用飙升问题排查与解决方案
  • NIO零拷贝
  • MySQL的union、union all导致排序失效
  • 低输入电源5.5V/2A同步降压转换器具有多种模式选择
  • roslaunch 文件的核心语法和使用技巧
  • (LeetCode 每日一题) 1233. 删除子文件夹 (排序)
  • TCP/UDP协议深度解析(四):TCP的粘包问题以及异常情况处理
  • 7.19 换根dp | vpp |滑窗
  • 医养照护与管理实训基地建设:创新模式与突破路径
  • 扭蛋机系统开发:打造多元化娱乐生态的新引擎
  • 响应式单位rpx及搭配使用UI产品工具
  • Ambiguity-Resolved Waveform Design for Cell-free OFDM-Based ISAC Systems
  • 【MySQL笔记】视图
  • 力扣 hot100 Day49
  • day25 力扣90.子集II 力扣46.全排列 力扣47.全排列 II
  • 二、环境搭建之CentOS安装Docker
  • GitHub:只支持 Git 作为唯一的版本库格式进行托管
  • 二分查找-69.x的平方根-力扣(LeetCode)
  • 安装单机版本Redis
  • 电商商品综合排序:从需求分析到实时计算的全方位指南
  • 初识Redis---Redis的特性介绍
  • GM-3568JHF vs 普通 RK3568 开发板 — 工业应用对比文案
  • 学习 Python 爬虫需要哪些基础知识?
  • 3516cv610 npu 开发典型功能点的介绍
  • Azure Bicep 是什么?
  • leetcode_121 买卖股票的最佳时期
  • AWS Partner: Accreditation (Technical)
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 57(题目+回答)
  • QT动态加载动态库 QLibrary
  • 从车险理赔到快递签收:打通区块链与现实世界的“最后一公里”——解密预言机(Oracle)