1

我试图在比较它们后将记录从 SSIS 条件拆分更新到目的地,但我被困在 NULL 值上。我有一个包含 128 列的源表,需要将其与目标进行比较以查找要更新的记录,不幸的是我无法将 NULL 值一起比较,否则条件的结果将为 False,因为它无法比较 NULL。有没有办法轻松比较将 NULL 值作为字符串处理的源记录和目标记录或任何其他避免失败的方法?谢谢

4

1 回答 1

1

尝试使用ISNULL(column,'NULL')与字符串 NULL not actual 进行比较NULL

如果 source 和 destination 都有NULL,则需要ISNULL在两边加上,例如,ISNULL(Source_col,'NULL') = ISNULL(Target_col,'NULL')

此外,如果您不需要比较那些NULL,您可以先过滤掉那些NULL,它会在运行时为您提供更好的性能。

例如,您可以有条件地拆分源where col is not null并设置目标select * From table where col1 is not null and col2 is not null等。

更新

在您的情况下,它将是:

(ISNULL(SRC_ACT_PLN,'NULL') == ISNULL(DST_ACT_PLN,'NULL'))(其他相同),但请记住,如果源和目标都是NULL,它仍将返回为TRUE,否则,执行我上面的建议,NULL先处理(过滤掉)然后进行比较。

于 2017-04-20T13:04:16.253 回答