SSIS 中的相交和排除结果如何

How Intersect and Except result in SSIS

有两个结果集A和B,在SSIS Merge Join中如何得到A结果集的EXCEPT和INTERSECT。

波纹管 sql 语法 return 所需输出:

---Insersect
select a.* from A a Inner join B b on a.Key=b.Key 

--Except
select a.* from A a left join B b on a.Key=b.Key where b.Key is null

如何从 SSIS merge join 获取那些查询结果

根据他的 Microsoft Article“Merge Join 转换提供了一个输出,该输出是通过使用 FULL、LEFT 或 INNER 联接来联接两个排序的数据集而生成的”

在合并联接转换编辑器中,您可以 select Join Type 属性 来执行此操作:

除了:

select a.* from A a left join B b on a.Key=b.Key where b.Key is null

您必须设置 Join Type = Left Outer Join,并且在 Merge Join Transformation 之后您必须添加条件拆分以过滤具有 b.Key is null[=22= 的行]

请阅读这篇详细的文章:Get all from Table A that isn't in Table B

相交

select a.* from A a Inner join B b on a.Key=b.Key

你必须设置 Join Type = Inner Join

为此请关注这篇文章:Inner join in SSIS