PostgreSQL UNION 运算符用于将多个查询的结果集合并为一个结果集。它用于将两个或多个 SELECT 语句的结果集组合成一个结果集。
用法: SELECT column_1, column_2 FROM table_name_1 UNION SELECT column_1, column_2 FROM table_name_2;
使用 UNION 运算符时需要遵循以下规则:
- 两个查询必须返回相同数量的列。
- 查询中的相应列必须具有兼容的数据类型。
注意:UNION 运算符从查询集中删除所有重复的行。
让我们通过在示例数据库(例如 sales2020)中设置两个示例表来查看 UNION 运算符的一些示例。假设表 “sales2020q1” 表示特定产品在 2020 年第一季度的销售额,“sales2020q2” 表示同年第二季度的销售额。现在让我们按照以下步骤设置数据库:
- 使用以下命令创建 sales2020 数据库:
CREATE DATABASE sales2020;
- 现在使用以下命令向 sales2020 数据库添加两个表,即 sales2020q1 和 sales2020q2:
CREATE TABLE sales2020q1( id SERIAL, name VARCHAR(50) NOT NULL, amount VARCHAR(50), PRIMARY KEY (id) ); CREATE TABLE sales2020q2( id SERIAL, name VARCHAR(50) NOT NULL, amount VARCHAR(50), PRIMARY KEY (id) );
- 使用以下命令将数据插入表中:
INSERT INTO sales2020q1(name, amount) VALUES ('Raju Kumar', '121232'), ('Nikhil Aggarwal', '254789'), ('Abhishek Kelenia', '365487'); INSERT INTO sales2020q2(name, amount) VALUES ('Raju Kumar', '457264'), ('Nikhil Aggarwal', '365241'), ('Abhishek Kelenia', '759864');
现在我们的示例数据库已准备就绪。让我们在几个例子中实现 UNION 运算符。
范例1:
在这里,我们将使用 UNION 运算符来合并来自 sales2020q1 和 salese2020q2 表的数据。
SELECT * FROM sales2020q1 UNION SELECT * FROM sales2020q2;
输出:
范例2:
这里我们将在合并 sales2020q1 和 salese2020q2 表的数据后,使用 ORDER BY 子句对 UNION 运算符返回的合并结果按 “id” 的卫序进行排序。
SELECT * FROM sales2020q1 UNION ALL SELECT * FROM sales2020q2 ORDER BY name ASC, amount DESC;
输出:
相关用法
- PostgreSQL NOT IN用法及代码示例
- PostgreSQL IN用法及代码示例
- PostgreSQL NOT LIKE用法及代码示例
- PostgreSQL ILIKE用法及代码示例
- PostgreSQL IS NULL用法及代码示例
- PostgreSQL LIKE用法及代码示例
- PostgreSQL NOT BETWEEN用法及代码示例
- PostgreSQL BETWEEN用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – UNION operator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。