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