4

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

我分裂的条件是

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

但有人告诉我,我的表达式导致 null,即非布尔条件。

谁能帮我写下可行的条件吗?

非常感谢

帕特里克

4

1 回答 1

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

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

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

或 (布尔 || 布尔 || INT) != INT

当你想要的是 (Boolean || Boolean || Boolean)

试试这个答案中最上面的代码。

于 2012-09-21T18:52:37.550 回答