SQL Server中取两个表的交集,并集和差集
在项目中遇到要取两个表差集的情况
假设有两个表tblNZPostCodes, NZPostcode 两个表中存储的都是新西兰的post code信息,字段一致,只是数据上有所差异。
1. Union 获取两个表的合集并且自动过滤重复数据
Select * from tblNZPostCodes Union Select * from NZPostcode
2. Union all 获取两个表的合集并且不过滤重复数据
Select * from tblNZPostCodes Union all Select * from NZPostcode
3. Intersect 获取两个表的交集
Select * from tblNZPostCodes intersect Select * from NZPostcode
4. except 获取第1个表中存在,而第2个表中不存在的数据
比如,下面的语句将获取在tblNZPostCodes中存在,但NZPostcode中不存在的数据
Select * from tblNZPostCodes except Select * from NZPostcode