当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PostgreSQL UNION用法及代码示例


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;

输出:

相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – UNION operator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。