当前位置: 首页 > 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.xdnf.cn/news/1150417.html

相关文章:

  • Maven 依赖管理
  • Java从入门到精通:全面学习路线指南
  • uniapp props、$ref、$emit、$parent、$child、$on
  • MySQL练习3
  • 【橘子分布式】gRPC(编程篇-中)
  • 《Origin画百图》之多分类矩阵散点图
  • 从零开始学Tailwind CSS : 颜色配置原理与实践
  • (后者可以节约内存/GPU显存)Pytorch中求逆torch.inverse和解线性方程组torch.linalg.solve有什么关系
  • 93.数字信号处理相关的一些问题
  • 发明专利怎么写,与学术文章异同点与注意事项
  • 月舟科技近调记录
  • Python+ArcGIS+AI蒸散发与GPP估算|Penman-Monteith模型|FLUXNET数据处理|多源产品融合|专业科研绘图与可视化等
  • 实验-华为综合
  • Visual Studio Code(VSCode)中设置中文界面
  • 【Python库包】Gurobi-Optimize (求解 MIP) 安装
  • GATE:基于移动嵌入式设备的实时边缘构建图注意力神经网络用于鲁棒室内定位
  • ElasticSearch:商品SKU+SPU实现join查询,设计及优化
  • 【数据结构】二叉树初阶详解(一):树与二叉树基础 + 堆结构全解析
  • 计算机网络:(十)虚拟专用网 VPN 和网络地址转换 NAT
  • 智能体之变:深度解析OpenAI ChatGPT Agent如何重塑人机协作的未来
  • 【Linux】基本指令
  • c++——友元函数
  • Java大视界:Java大数据在智能医疗电子健康档案数据挖掘与健康服务创新>
  • Android无需授权直接访问Android/data目录漏洞
  • K8s与Helm实战:从入门到精通
  • MySQL数据丢失救援办法
  • 物联网iot、mqtt协议与华为云平台的综合实践(万字0基础保姆级教程)
  • 抖音回应:没有自建外卖,就是在团购的基础上增加的配送功能
  • 游戏开发日志
  • Android回调机制入门