You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SSIS中设置表达式以避免返回NaN值

解决[New Cases]/[Total Cases]的NaN与除零问题

核心要处理两种异常场景:分母[Total Cases]为0或空值、分子[New Cases]为空值,下面提供几种适配不同数据环境的写法,你可以根据自己的工具调整:

通用逻辑写法(三元运算符+空值判断)

示例1:返回0作为默认值

ISNULL([New Cases], 0) / IIF(ISNULL([Total Cases], 0) = 0, 1, ISNULL([Total Cases], 0))

逻辑说明:

  • 把分子的空值替换为0:ISNULL([New Cases], 0)
  • 用IIF判断分母:若分母为空或0,就用1做分母(避免除零,此时0/1=0),否则用原分母计算

示例2:返回NULL作为默认值(保留空值语义)

IIF(ISNULL([Total Cases], 0) = 0 OR ISNULL([New Cases]), NULL, [New Cases]/[Total Cases])

逻辑说明:

  • 只要分母是空/0,或者分子是空,就返回NULL;否则正常计算比值

SQL数据集市写法

用CASE WHEN替代三元运算符,兼容性更强:

CASE
    WHEN COALESCE([Total Cases], 0) = 0 OR [New Cases] IS NULL THEN NULL
    ELSE [New Cases] / [Total Cases]
END AS Case_Ratio

若需要返回0作为默认值:

CASE
    WHEN COALESCE([Total Cases], 0) = 0 THEN 0
    ELSE COALESCE([New Cases], 0) / [Total Cases]
END AS Case_Ratio

注意事项

  • 不同工具的空值函数有差异:比如Tableau用ZN()替代ISNULL(),Power BI支持ISBLANK()和ISNULL(),SQL常用COALESCE()
  • 默认值选0还是NULL,取决于业务需求:需要统计时不忽略异常项选0,要保留空值含义选NULL

内容的提问来源于stack exchange,提问作者LUIS E BAERGA-GONZALEZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:25:27