((DT_STR,20,1252)OccuranceRegion == "US" && ((DT_STR,20,1252)LegalEntity == "AECB" || (DT_STR,20,1252)LegalEntity == "FSB" || (DT_STR,20,1252)LegalEntity == "Both"))
? DATEADD("day",30,CapCreationDt) : (ISNULL(MaxofRevSCIAndSCI) ? (DT_DATE)"1900-01-01" : MaxofRevSCIAndSCI)
每当我把条件设为
时OccuranceRegion == "US" AND
LegalEntity is null
结果是NULL,我还检查了MaxofRevSCIAndSCI的值,它不是null。为什么,它不会进入其他部分?
答案 0 :(得分:0)
NULL的任何函数(除了专门的,#34; NULL-killing"函数ISNULL等)都计算为NULL。您只将LegalEntity与字符串常量进行比较。如果LegalEntity为NULL,则这些表达式将计算为NULL。您需要将LegalEntity中的NULL值替换为其他值。可能是上游的派生列
ISNULL(LegalEntity) ? "##NULL#' : LegalEntity
比在表达式本身中执行此操作更容易(因为SSIS表达式对于调试来说是可怕的)。