如何在SSIS表达式中将NULL替换为零?

Djb*_*ril 4 ssis

我有两列ActivityCountParentValue.我创建了一个表达式:

ROUND((ActivityCount / ParentValue) / 100,16) * 100 
Run Code Online (Sandbox Code Playgroud)

但问题是它返回NULL了一些列,我想替换NULL0.我似乎无法找到答案.

小智 8

表达:

ISNULL(ParentValue) || (ParentValue == 0) ? 0 : ROUND(ISNULL(ActivityCount) ? 0 : ActivityCount / ParentValue / 100,16) * 100
Run Code Online (Sandbox Code Playgroud)

为了便于阅读:

ISNULL(ParentValue) || (ParentValue == 0) 
    ? 0 
    : ROUND((ISNULL(ActivityCount) 
                ? 0 
                : ActivityCount / ParentValue) / 100
             , 16) * 100
Run Code Online (Sandbox Code Playgroud)

它能做什么:

  • 如果ParentValue字段是NULL或有Zero,则不必执行计算,因为您将遇到Divide by Zero错误.因此,只需返回0即可退出表达式.

  • 如果ActivityCount是field NULL,则在执行计算之前将其替换为零.

建议:

COALESCE如果可能的话,我建议在源查询上使用零替换NULL值和计算.