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