数据库并集union、交集intersect、差集except

数据库对两个或多个结果集进行合并、取重、剔除操作时,可以通过UNION、INTERSECT、EXCEPT来实现。

所操作的结果集有如下限制条件:

(1)所有查询中的列数和列的顺序必须相同。
(2)比较的两个查询结果集中的列数据类型可以不同但必须兼容。
(3)比较的两个查询结果集中不能包含不可比较的数据类型(xml、text、ntext、image 或非二进制 CLR 用户定义类型)的列。
(4)返回的结果集的列名与操作数左侧的查询返回的列名相同。ORDER BY 子句中的列名或别名必须引用左侧查询返回的列名。
(5)不能与 COMPUTE 和 COMPUTE BY 子句一起使用。
(6)通过比较行来确定非重复值时,两个NULL值被视为相等。(EXCEPT 或 INTERSECT 返回的结果集中的任何列的为空性与操作数左侧的查询返回的对应列的为空性相同)

使用下面两个表进行操作

一、并集(UNION)

--返回两个结果集的并集  
(select name from Table_3)union(select stuname from Table_4)  
  1. --返回两个结果集的并集  
  2. (select name from Table_3)union(select stuname from Table_4)  

二、交集(INTERSECT)


 

--返回两个结果集的交集(返回相同记录)  
(select name from Table_3)intersect(select stuname from Table_4)  
  1. --返回两个结果集的交集(返回相同记录)  
  2. (select name from Table_3)intersect(select stuname from Table_4)  

三、差集(EXCEPT)

扫描二维码关注公众号,回复: 1595578 查看本文章
--返回两个结果集的差集(从前一个表中剔除两个表中相同的记录)  
(select name from Table_3)except(select stuname from Table_4)  
  1. --返回两个结果集的差集(从前一个表中剔除两个表中相同的记录)  
  2. (select name from Table_3)except(select stuname from Table_4)  

猜你喜欢

转载自www.cnblogs.com/hhopkin/p/9183811.html