首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MS SQL Server UNION 合併查詢完整指南:語法、去重與排序技巧

     編輯:關於SqlServer

合併查詢使用 UNION 運算子將多個查詢結果垂直合併,自動去除重複列。若需保留重複,使用 UNION ALL(效能更佳)。

必要條件

  • 所有子查詢欄位數量相同。
  • 對應位置欄位資料型別相容(隱含轉換或明確轉換)。
  • 欄位名稱以第一個查詢為準。

語法與範例

SELECT col1, col2 FROM table1
UNION
SELECT col1, col2 FROM table2
ORDER BY 1 -- 建議使用數字位置排序

UNION 範例1 UNION 範例2

排序與別名技巧

  • ORDER BY 僅能放在最後一個查詢之後,作用於整個合併結果。
  • 建議使用數字位置(ORDER BY 1, 2)而非欄位名,避免子查詢欄位名不一致導致錯誤。
  • 可在子查詢使用別名統一欄位名稱,增強可讀性。

ORDER BY 與別名範例

效能建議

  • 無去重需求時務必用 UNION ALL,避免昂貴的排序去重運算。
  • 子查詢各自加上合適索引與 WHERE 篩選,減少參與合併的資料量。
  • 大量資料考慮分頁或暫存表分階段合併。

總結

UNION/UNION ALL 是整合異質資料來源、彙總報表的核心工具。掌握去重語意、排序位置與型別相容規則,能寫出正確且高效的合併查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved