UNION
是一個 SQL 操作符,用于合并兩個或多個 SELECT
語句的結果集
組合數據:當你需要從多個表中獲取相似類型的數據時,可以使用 UNION
。例如,從兩個不同的表中獲取所有員工的信息。
SELECT employee_id, first_name, last_name FROM employees_usa
UNION
SELECT employee_id, first_name, last_name FROM employees_uk;
去重:UNION
會自動去除結果集中的重復行。如果你需要從一個表中獲取唯一的值,可以使用 UNION
。
SELECT DISTINCT product_id FROM orders WHERE order_date < '2022-01-01'
UNION
SELECT DISTINCT product_id FROM returns WHERE return_date < '2022-01-01';
合并條件篩選結果:當你需要根據不同條件從同一個表中獲取數據,并將這些數據合并到一個結果集中時,可以使用 UNION
。
SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 10
UNION
SELECT employee_id, first_name, last_name FROM employees WHERE salary > 5000;
排序和限制結果:雖然 UNION
不能直接用于排序和限制結果,但你可以將其與 ORDER BY
和 LIMIT
(或 ROWNUM
)結合使用。
(SELECT * FROM employees WHERE department_id = 10
UNION
SELECT * FROM employees WHERE department_id = 20)
ORDER BY salary DESC
LIMIT 10;
請注意,為了使用 UNION
,每個 SELECT
語句必須具有相同數量的列,并且相應列的數據類型必須兼容。此外,列名和順序在第一個 SELECT
語句中定義,后續的 SELECT
語句必須遵循相同的列名和順序。