SQL 程式札記 : 聯集(UNION)

2023/12/25閱讀時間約 2 分鐘

本文重點介紹 SQL 中的聯集(UNION),聯集(UNION)用於合併來自不同查詢的結果集,接下來將透過範例程式碼來讓你了解聯集(UNION)的用法和特性。

聯集(UNION)

聯集在 SQL 中用於合併兩個或多個 SELECT 語句的結果集。重要的是,每個 SELECT 語句必須具有相同數量的列,且對應列的資料類型相同。

使用聯集的情況

  • 從不同的資料表中提取相關信息。
  • 對來自多個數據源的數據進行整合。
  • 在不同條件或範圍內進行相同欄位的查詢。

聯集的基本語法

聯集的基本語法如下:

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

聯集(UNION)實際範例

範例資料表創建

假設存在兩個表格 表格A表格B,它們存儲了不同的數據,但具有相同的結構(例如,姓名和專業)。

CREATE TABLE TableA (
Name VARCHAR(50),
Major VARCHAR(50)
);

CREATE TABLE TableB (
Name VARCHAR(50),
Major VARCHAR(50)
);

使用聯集合併數據

假設我們想要從這兩個表格中提取所有唯一的姓名和專業組合。我們可以這樣做:

SELECT Name, Major FROM TableA
UNION
SELECT Name, Major FROM TableB;

這個查詢將返回一個結果集,其中包含來自 TableATableB 的所有唯一的姓名和專業組合。

聯集的去重特性

值得注意的是,聯集(UNION)會自動去除重複的行。也就是說,如果同一個人在兩個表格中都出現了,那麼在最終的結果集中,這個人只會被列出一次。

使用 UNION ALL 保留重複行

如果目的是保留重複的行,則可以使用 UNION ALL。例如:

SELECT Name, Major FROM TableA
UNION ALL
SELECT Name, Major FROM TableB;

這個查詢將返回一個結果集,包括所有行,即使某些行在兩個表格中都出現過。

對聯集結果進行排序

可以在 UNION 查詢的末尾添加一個 ORDER BY 子句來對結果進行排序。比如,按照姓名排序:

SELECT Name, Major FROM TableA
UNION
SELECT Name, Major FROM TableB
ORDER BY Name;

這樣做會按照姓名的字母順序排列所有的結果。


😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

51會員
82內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 [email protected]
留言0
查看全部
發表第一個留言支持創作者!