温馨提示×

union函数在Oracle中的适用场景

小樊
82
2024-09-16 17:53:58
栏目: 云计算

UNION 是一个 SQL 操作符,用于合并两个或多个 SELECT 语句的结果集

  1. 组合数据:当你需要从多个表中获取相似类型的数据时,可以使用 UNION。例如,从两个不同的表中获取所有员工的信息。

    SELECT employee_id, first_name, last_name FROM employees_usa
    UNION
    SELECT employee_id, first_name, last_name FROM employees_uk;
    
  2. 去重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';
    
  3. 合并条件筛选结果:当你需要根据不同条件从同一个表中获取数据,并将这些数据合并到一个结果集中时,可以使用 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;
    
  4. 排序和限制结果:虽然 UNION 不能直接用于排序和限制结果,但你可以将其与 ORDER BYLIMIT(或 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 语句必须遵循相同的列名和顺序。

0