更新时间:2024-12-20 GMT+08:00

聚合操作

Union/Union ALL/Intersect/Except

  • 语法格式
    1
    query UNION [ ALL ] | Intersect | Except query
    
  • 语法说明
    • UNION返回多个查询结果的并集。
    • Intersect返回多个查询结果的交集。
    • Except返回多个查询结果的差集。
  • 注意事项
    • 集合运算是以一定条件将表首尾相接,所以其中每一个SELECT语句返回的列数必须相同,列的类型一定要相同,列名不一定要相同。
    • UNION默认是去重的,UNION ALL是不去重的。
  • 示例

    输出Orders1和Orders2的并集,不包含重复记录。

    1
    2
    SELECT  * FROM Orders1
      UNION SELECT  * FROM Orders2;
    

IN

  • 语法格式
    1
    2
    3
    SELECT [ ALL | DISTINCT ]   { * | projectItem [, projectItem ]* }
      FROM tableExpression
      WHERE column_name IN (value (, value)* ) | query
    
  • 语法说明

    IN操作符允许在where子句中规定多个值。若表达式在给定的表子查询中存在,则返回 true 。

  • 注意事项

    子查询表必须由单个列构成,且该列的数据类型需与表达式保持一致。

  • 示例

    输出Orders中NewProducts中product的user和amount信息。

    1
    2
    3
    4
    5
    SELECT user, amount
    FROM Orders
    WHERE product IN (
        SELECT product FROM NewProducts
    );