如何在 SSIS 中使用 Lookup 对象保持两个流

How to keep both flows using Lookup object in SSIS

在 SSIS 中的数据流任务中遇到问题。

在我当前的流程中,我想使用查找对象添加一些额外的数据。如果匹配则根据 Lookup 对象的设置添加数据,如果没有匹配则保持过程不变。

我将我的查找对象设置为将不匹配的记录重定向到“不匹配”输出并将其link编辑到现有流程(因为我不想更改现有记录,只是为了增强一些附加数据),但我不知道如何 link 匹配输出到相同的流。

如果我要使用 TSql 语句,我刚刚使用了左连接,但我只是想不出要使用 SSIS 中的其他对象,为了保持现有流程不变,只是为了增强它,当匹配时,使用新数据。

您可以在不使用查找重定向输出的情况下执行此操作。

只需将 Lookup 配置为忽略 No Match 错误,这样对于不匹配的值,输出值将设置为 Null

完成此操作后,在 Lookup 之后添加一个 Multicast 组件,这样您就可以将输出相乘,然后在 MultiCast 输出之一中添加一个 Conditional Split 并过滤行,其中 ISNULL([YourColumn]) == True (您将在一个输出中仅获得无匹配行,在另一个输出中获得所有行)

您可以为此使用 Merge join 组件。

您需要先对数据进行排序(可以使用 sort component 完成)。之后,只需将两个组件与 Merge join component.

连接起来

merge join 中,您可以 select 您想要哪种联接(查看上面的 link 了解更多信息)。就像 T-SQL 语句

一样工作