當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。