SQL Server集合运算符

SQL Server集合运算符

一、SQL Server Union (并集)。

  1. 简要: 将2条或多条SQL的查询结果合并成1个结果集返回。

  2. SQL Server UNION 是一组集合操作,用于将两个SELECT语句的结果组合到一个结果集中,该结果集包括属于 UNION 中 SELECT 语句的所有行。

  3. 以下Union语法中的查询要求:
    - 两个查询中列的数量必须相同。
    - 相应列的数据类型必须相同或兼容。

    以第一个SELECT语句的列名称作为返回结果的列名称,如果数据类型不匹配,
    UNION 结果会从所有的SELECT语句中推测返回列的类型和长度。
    
  4. 默认情况下,UNION运算符从结果集中删除所有重复的行。但是,如果要保留重复的行,则需要明确的在后面指定ALL关键字。

  5. UNION 和 UNION ALL 的示例。

    SELECT column_name_a1, column_name_a2 
    FROM table_name_a
    UNION
    -- 或者 UNION ALL
    SELECT column_name_b1, column_name_b2 
    FROM table_name_b;
    

二、SQL Server Intersect (交集)。

  1. 简要: 将2条或多条SQL的查询结果获取查询结果集的共有结果集返回。

  2. 以下Intersect语法中的查询要求:
    - 两个查询必须具有相同的列数和顺序。
    - 相应列的数据类型必须相同或兼容。

    INTERSECT和UNION一样,它们都需要结果集A和结果集B拥有相同的结构,
    即它们的列数要一致,且每列的数据类型也需要一致,否则没法进行比较。
    
  3. 不支持 INTERSECT运算符的 ‘ALL’ 版本。

  4. INTERSECT的示例。

    SELECT column_name_a1, column_name_a2 
    FROM table_name_a
    INTERSECT
    SELECT column_name_b1, column_name_b2 
    FROM table_name_b;
    

三、SQL Server Except (差积)。

  1. 简要: 作用在两个查询结果集,返回第一个结果集但不包含第二个结果集的所有行。

  2. SQL Server EXCEPT 比较两个查询的结果集,并返回第一个查询中不是由第二个查询输出的不同行。 换句话说, EXCEPT 从一个查询结果中减去另一个查询的结果集。

  3. 以下EXCEPT语法中的查询要求:
    - 两个查询中列的数量和顺序必须相同。
    - 相应列的数据类型必须相同或兼容。

  4. 不支持 EXCEPT 运算符的 ‘ALL’ 版本。

  5. EXCEPT的示例。

    SELECT column_name_a1, column_name_a2 
    FROM table_name_a
    EXCEPT
    SELECT column_name_b1, column_name_b2 
    FROM table_name_b;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值