SSIS条件拆分NULL

时间:2012-09-19 16:08:10

标签: ssis null split conditional

我需要检测两个值中的任何一个是否为空,如果不是,它们是否不同。

我分手的条件是

(ISNULL(ModuleLevelId) && !ISNULL(LEV_CODE)) || 
(!ISNULL(ModuleLevelId) && ISNULL(LEV_CODE)) || (ISNULL(LEV_CODE) ? 0 - ModuleLevelId : (DT_I4)LEV_CODE) != ModuleLevelId

但我被告知我的表达式会导致null,即非布尔条件。

任何人都可以帮我写出可以使用的条件吗?

非常感谢

帕特里克

1 个答案:

答案 0 :(得分:4)

(ISNULL(ModuleLevelId) && !ISNULL(LEV_CODE)) || 
(!ISNULL(ModuleLevelId) && ISNULL(LEV_CODE)) ||
((ISNULL(LEV_CODE) ? 0 - ModuleLevelId :(DT_I4)LEV_CODE) != ModuleLevelId)

我认为你需要围绕你的第三个任期:

 (ISNULL(LEV_CODE) ? 0 - ModuleLevelId :(DT_I4)LEV_CODE) != ModuleLevelId

with()。我认为表达式引擎错误地将其解析为

((ISNULL(ModuleLevelId) && !ISNULL(LEV_CODE)) || 
(!ISNULL(ModuleLevelId) && ISNULL(LEV_CODE)) ||
(ISNULL(LEV_CODE) ? 0 - ModuleLevelId :(DT_I4)LEV_CODE)) != ModuleLevelId

或(Boolean || Boolean || INT)!= INT

什么时候你想要的 (Boolean || Boolean || Boolean)

尝试此答案中最顶层的代码。