SQL 基础 | UNION 用法介绍

在SQL中,UNION操作符用于合并两个或多个SELECT语句的结果集,形成一个新的结果集。

使用UNION时,合并的结果集列数必须相同,并且列的数据类型也需要兼容。

默认情况下,UNION会去除重复的行,只保留唯一的行。

以下是UNION的一些常见用法:

  1. 基本用法: 使用 UNION将两个查询的结果集合并,每个查询的列数和类型必须相同。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

例如,合并两个表中所有客户的姓名:

SELECT CustomerName FROM Customers
UNION
SELECT CustomerName FROM Suppliers;
  1. **使用 UNION ALL**: UNION ALLUNION类似,但它不会去除重复的行。如果合并的结果集中存在重复的行, UNION ALL会保留它们。
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
  1. 合并多表UNION可以用于合并两个以上的查询结果集,每个查询之间用 UNION连接。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2
UNION
SELECT column_name(s) FROM table3;
  1. 指定排序UNION的结果集默认不排序。如果你想要对合并后的结果进行排序,需要使用 ORDER BY子句,并且只能放在所有 UNION操作的最后。
(SELECT column_name(s) FROM table1)
UNION
(SELECT column_name(s) FROM table2)
ORDER BY column_name;
  1. 使用别名: 可以为 UNION中的每个查询指定别名,使结果集更加清晰。
(SELECT column_name AS alias_name FROM table1) AS t1
UNION
(SELECT column_name AS alias_name FROM table2) AS t2;
  1. 与子查询结合使用UNION可以与子查询结合使用,子查询可以是更复杂的查询。
(SELECT * FROM table1 WHERE condition1)
UNION
(SELECT * FROM (SELECT * FROM table2) AS subquery WHERE condition2);
  1. **使用 LIMITOFFSET**: 可以在 UNION操作的每个查询中使用 LIMITOFFSET来控制结果集的行数和偏移量。
(SELECT column_name(s) FROM table1 LIMIT 10
UNION 
(SELECT column_name(s) FROM table2 LIMIT 10 OFFSET 10);

使用UNION时,需要注意以下几点:

  • 所有查询的列数必须相同。
  • 相应列的数据类型必须兼容,不需要完全相同,但是必须是可以比较的。
  • 默认情况下, UNION会自动去除重复的行,如果需要包含重复行,使用 UNION ALL
  • UNION的结果集不能指定列名,列名来自参与 UNION的第一个查询。
  • 对结果集进行排序只能使用一个 ORDER BY子句,并且必须位于所有 UNION操作之后。

UNION是一个非常有用的工具,可以帮助你将来自不同表的数据合并成一个统一的结果集,从而简化数据分析和报告。

-- END --

alt

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

-- END --

alt

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3004161.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现

摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元&#xff0c…

智能家居|基于SprinBoot+vue的智能家居系统(源码+数据库+文档)

智能家居目录 基于SprinBootvue的智能家居系统 一、前言 二、系统设计 三、系统功能设计 1管理员:个人中心管理功能的详细实现 2管理员:用户信息管理功能的详细实现 3管理员:家具管理功能的详细实现 4管理员:任务管理功能…

一周零碎时间练习微服务(nacos,rq,springcloud,es等)内容

目录 1 总览1.1 技术架构1.2 其他1.2.1 数据库1.2.2 后端部分1.2.2.1 复习feign1.2.2.2 复习下网关网关的核心功能特性:网关路由的流程断言工厂过滤器工厂全局过滤器 过滤器执行顺序解决跨域问题 1.2.2.3 es部分复习 1.2.3 前端部分 2 day1 配置网关2.1 任务2.2 网关…

网盘——分享文件——逻辑设计

本文主要讲解关于网盘文件操作部分的分享文件的逻辑设计部分,主要步骤如下: 目录 1、实施步骤: 2、代码实现 2.1、添加分享文件协议 2.2、添加取消槽函数 2.3、关联取消选择的槽函数 2.4、添加取消槽函数的定义 2.5、添加全选函数槽函…

CTF-WEB(MISC)

安全攻防知识——CTF之MISC - 知乎 CTF之MISC杂项从入门到放弃_ctf杂项 你的名字-CSDN博客 CTF MICS笔记总结_archpr 掩码攻击-CSDN博客 一、图片隐写 CTF杂项---文件类型识别、分离、合并、隐写_ctf图片分离-CSDN博客 EXIF(Exchangeable Image File)是…

【Qt QML】QLibrary加载共享库中的类

QLibrary是一个用于加载动态链接库(或称为共享库)的类。它提供了一种独立于平台的方式来访问库中的功能。 在QLibrary中,可以通过构造函数或setFileName()方法设置要加载的库文件名。当加载库文件时,QLibrary会搜索所有平台特定的…

设计模式: 责任链模式

目录 一,责任链模式 二,特点 四,实现步骤 五,代码 一,责任链模式 责任链模式(Chain of Responsibility Pattern)是一种软件设计模式,它属于行为型模式。在这种模式中&#xff0c…

量子城域网建设设备系列(二):量子密钥管系统(KMS)

在上文介绍光量子交换机的文章中我们提到,量子保密通信网络的通道切换是由量子密钥管理系统(Key Management System,KMS)给光量子交换机下发信道切换指令,实现整个网络中任意两对量子密钥分发终端的量子信道互联互通&a…

数据分析--客户价值分析RFM(分箱法/标准化)

原数据 原数据如果有异常或者缺失等情况,要先对数据进行处理 ,再进行下面的操作,要不然会影响结果的正确性 一、根据RFM计算客户价值并对客户进行细分 1. 数据预处理 1.1 创建视图存储 R、F、M的最大最小值 创建视图存储R 、F、M 的最大最小…

探索高级聚类技术:使用LLM进行客户细分

在数据科学领域,客户细分是理解和分析客户群体的重要步骤。最近,我发现了一个名为“Clustering with LLM”的GitHub仓库,它由Damian Gil Gonzalez创建,专门针对这一领域提供了一些先进的聚类技术。在这篇文章中,我将概…

Java中使用Redis实现分布式锁的三种方式

1. 导语 随着软件开发领域的不断演进,并发性已经成为一个至关重要的方面,特别是在资源跨多个进程共享的分布式系统中。 在Java中,管理并发性对于确保数据一致性和防止竞态条件至关重要。 Redis作为一个强大的内存数据存储,为在Java应用程序中实现分布式锁提供了一种高效的…

VTK 的可视化方法:Cutting Probing

VTK 的可视化方法:Cutting & Probing VTK 的可视化方法:Cutting & ProbingCuttingProbing VTK 的可视化方法:Cutting & Probing Cutting 和 Probing 都是对三维数据截取二维平面的方法。它们的区别是: Cutting 使用…

Java-异常处理-处理RuntimeException(2/2)

下面有一个简单的整数除法运算程序,输入两个整数作为被除数和除数,在正常情况下,会输出两数相除的整数商。 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.i…

私域运营的崛起:企业第三极销售渠道的战略思考与定制开发AI智能名片B2B2C商城小程序

在数字化营销的新时代,私域运营如同璀璨新星,已然崛起为企业不可或缺的第三极销售渠道。那么,如何善用这一新兴领域的价值,使之为企业带来持续增长和竞争力,已成为众多企业需要从战略层面深入思考的问题。而在这一过程…

Node.js -- MongoDB

文章目录 1. 相关介绍2. 核心概念3. 命令行交互3.1数据库命令3.2 集合命令3.3 文档命令 4. 数据库应用场景4.1 新增4.2 删除4.3 更新4.4 查询 5. 图形化工具Robo 3T 1. 相关介绍 一、简介 Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库,官方地址https://…

如何使用免费软件从Mac恢复音频文件?

要从Mac中删除任何文件,背后是有原因的。大多数Mac用户都希望增加Mac中的空间,这就是为什么他们更喜欢从驱动器中删除文件以便出现一些空间的原因。一些Mac用户错误地删除了该文件,无法识别这是一个重要文件。例如,他们错误地从Ma…

C++_set和map的学习

1. 关联式容器 STL中的容器有序列式容器和关联式容器。 其中 vector 、 list 、 deque 、 forward_list(C11)就是序列式容器, 因为其底层为线性序列的数据结构,里面 存储的是元素本身 关联式容器 也是用来存储数据的,与序列式容器不同的是&am…

Leetcode 108.将有序数组转换为二叉搜索树

题目描述 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被…

牛客网刷题 | BC73 计算一元二次方程

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 从键盘输入a, b, c的…

Scala应用 —— JDBC的创建

文章目录 Scala应用 —— JDBC的创建前言一、JDBC的创建过程1.初始化连接1.1 配置驱动1.2 创建连接对象 2. 初始化执行器2.1 创建执行器对象2.2 初始化执行器参数 3. 执行操作并返回结果 二、Scala JDBC的基本设计思路1. 操作步骤设计2. 解决结果差异化3.实现jdbc方法并输出结果…