📅  最后修改于: 2023-12-03 15:03:50.144000             🧑  作者: Mango
在 PostgreSQL 中,UNION
子句用于组合多个 SELECT
语句的结果集。UNION
会将多个结果集合并为一个结果集,并去除重复的行。
SELECT column1, column2, ... FROM table1
UNION [ALL | DISTINCT]
SELECT column1, column2, ... FROM table2;
column1, column2, ...
: 要检索的列的名称table1, table2, ...
: 要检索的表的名称DISTINCT
: 去除结果集中的重复行,默认为 DISTINCT
ALL
: 包括结果集中的所有行,包括重复行SELECT name FROM student WHERE score >= 90
UNION
SELECT name FROM student WHERE score < 60;
这个例子会返回所有成绩大于等于 90 或小于 60 的学生的姓名。UNION
会自动去除重复的行。
SELECT name FROM student WHERE score >= 90
UNION ALL
SELECT name FROM student WHERE score < 60;
这个例子会返回所有成绩大于等于 90 或小于 60 的学生的姓名,包括重复的行。
UNION
只会合并第一个 SELECT
语句和第二个 SELECT
语句的结果集,如果要合并多个结果集,需要嵌套 UNION
。UNION
的每一个 SELECT
语句必须选择相同数量和类型的列。UNION
按照列的顺序进行匹配,而不是按照列名进行匹配。UNION
只能合并两个 SELECT
语句的结果集,如果要合并多个结果集,需要嵌套 UNION
。ORDER BY
子句必须在最后一个 SELECT
语句中使用。