我需要检测两个值中的任何一个是否为空,如果不是,它们是否不同。
我分手的条件是
(ISNULL(ModuleLevelId) && !ISNULL(LEV_CODE)) ||
(!ISNULL(ModuleLevelId) && ISNULL(LEV_CODE)) || (ISNULL(LEV_CODE) ? 0 - ModuleLevelId : (DT_I4)LEV_CODE) != ModuleLevelId
但我被告知我的表达式会导致null,即非布尔条件。
任何人都可以帮我写出可以使用的条件吗?
非常感谢
帕特里克
答案 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)
尝试此答案中最顶层的代码。