更新时间:2026-07-03 GMT+08:00
分享

UNION

功能描述

UNION返回多个查询结果的并集。UNION默认去除重复行,使用UNION ALL保留重复行。

语法格式

select_statement UNION [ ALL ] select_statement;

参数说明

参数

说明

UNION

集合并运算,将多个查询结果合并。默认去除重复行。

ALL

加上ALL关键字后保留重复行,即不去重。UNION ALL的性能通常优于UNION,因为不需要去重操作。

注意事项

  • 每一个SELECT语句返回的列数必须相同。
  • 对应列的数据类型必须兼容。
  • 结果集的列名由第一个SELECT语句决定。
  • UNION默认去重,UNION ALL不去重。在不需要去重的场景下,推荐使用UNION ALL以获得更好的性能。
  • 多个集合运算(UNION、INTERSECT、EXCEPT)可以通过括号控制优先级(Spark 4.0)。

示例

UNION去重并集:

SELECT * FROM student_1 UNION SELECT * FROM student_2; 

UNION ALL不去重并集:

SELECT * FROM student_1 UNION ALL SELECT * FROM student_2; 

使用括号控制优先级(Spark 4.0):

(SELECT * FROM student_1 UNION ALL SELECT * FROM student_2)
   INTERSECT SELECT * FROM student_3; 

多表UNION:

SELECT name FROM student_1
   UNION ALL
SELECT name FROM student_2
   UNION ALL
SELECT name FROM student_3;

相关文档