我需要检测两个值中的任何一个是否为空,如果不是,它们是否不同。
我的 split 条件是
(ISNULL(ModuleLevelId) && !ISNULL(LEV_CODE)) ||
(!ISNULL(ModuleLevelId) && ISNULL(LEV_CODE)) || (ISNULL(LEV_CODE) ? 0 - ModuleLevelId : (DT_I4)LEV_CODE) != ModuleLevelId
但我被告知我的表达式会导致 null,即非 bool 条件。
任何人都可以帮我写下有效的条件吗?
非常感谢
帕特里克
最佳答案
(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
或 ( bool 值 || bool 值 || INT) != INT
当你想要的是
( bool 值 || bool 值 || bool 值)
试试这个答案中最上面的代码。
关于SSIS 条件拆分 NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12498657/