📜  PostgreSQL-UNIONS子句(1)

📅  最后修改于: 2023-12-03 15:03:50.144000             🧑  作者: Mango

PostgreSQL UNION 子句

在 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 语句中使用。