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;

  2. 合并多表UNION可以用于合并两个以上的查询结果集,每个查询之间用 UNION连接。

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2
    UNION
    SELECT column_name(s) FROM table3;

  3. 指定排序UNION的结果集默认不排序。如果你想要对合并后的结果进行排序,需要使用 ORDER BY子句,并且只能放在所有 UNION操作的最后。

    (SELECT column_name(s) FROM table1)
    UNION
    (SELECT column_name(s) FROM table2)
    ORDER BY column_name;

  4. 使用别名 : 可以为 UNION中的每个查询指定别名,使结果集更加清晰。

    (SELECT column_name AS alias_name FROM table1) AS t1
    UNION
    (SELECT column_name AS alias_name FROM table2) AS t2;

  5. 与子查询结合使用UNION可以与子查询结合使用,子查询可以是更复杂的查询。

    (SELECT * FROM table1 WHERE condition1)
    UNION
    (SELECT * FROM (SELECT * FROM table2) AS subquery WHERE condition2);

  6. **使用 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 --

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

-- END --

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

本文由mdnice多平台发布

相关推荐
利以檀本人(梦泽不忙)1 天前
#T1359. 围成面积
c++·程序人生·算法
jingling5551 天前
【高级】系统架构师 | 信息系统战略规划、EAI 与新技术
程序人生·职场和发展·系统架构·学习方法·程序员创富
序属秋秋秋2 天前
我的创作纪念日——《惊变365天》
经验分享·学习·程序人生·纪念日·生活·大学生
蓑衣客VS索尼克2 天前
第三章:生活重构:当程序员不再只是“码农“
学习·程序人生·重构·生活
武子康2 天前
66AI-调查研究-68-具身智能 应用全景:家庭、工业、医疗、交通到虚拟交互的未来趋势
人工智能·程序人生·ai·职场和发展·交互·个人开发·具身智能
swanwei3 天前
技术人员突围之路(15年技术管理经验总结)之十
学习·程序人生·生活·求职招聘·交友
武子康4 天前
AI-调查研究-67-具身智能 核心技术构成全解析:感知、决策、学习与交互的闭环系统
人工智能·科技·学习·程序人生·ai·职场和发展·职场发展
郝学胜-神的一滴4 天前
Pomian语言处理器研发笔记(二):使用组合模式定义表示程序结构的语法树
开发语言·c++·笔记·程序人生·决策树·设计模式·组合模式
郝学胜-神的一滴5 天前
策略模式:模拟八路军的抗日策略
开发语言·c++·程序人生·设计模式·策略模式
Cedric11137 天前
解构与重构:“真人不露相,露相非真人” 的存在论新解 —— 论 “真在” 的行为表达本质
程序人生