需要返回 null 而不是除以零
Need to get null back rather than divide by zero
我必须将旧查询更改为新查询才能获得正确的结果。我的旧查询用于 return 分母中的 null,因此我不必担心除以零,新查询 returns 将我的零除为 'M' (R_NTWK_CHNNL),但对于 'S' 或 R,我没有零分母。我该怎么做才能在查询 2 中获得空分母? table 的定义没有改变,想知道为什么现在 'M' 什么都没有时我没有得到空分母。另请问,我如何将 nullif
添加到查询 2 中?非常感谢。
旧查询
select SUM(CASE WHEN (GNRC_CD in ('O') and R_NTWK_CHNNL = 'M') then (CLNT_NET_DUE_AMT + NBNR_CLNT_NET_DUE_AMT) else 0 end ) / sUM(CLMS) from #Clms_SMRY where SRVC_DT between @CurrentBeginDate and @CurrentEndDate)
新查询
select SUM(CASE WHEN (GNRC_CD in ('O') ) and R_NTWK_CHNNL = 'M' then (CLNT_NET_DUE_AMT + NBNR_CLNT_NET_DUE_AMT) else 0 end ) / cast(SUM(CASE WHEN GNRC_CD in ('O') and R_NTWK_CHNNL = 'M' then (CLMS) end ) as float) from #Clms_Smry where SRVC_DT between @CurrentBeginDate and @CurrentEndDate),
使用NULLIF()
:
select (SUM(CASE WHEN (GNRC_CD in ('O') and R_NTWK_CHNNL = 'M') then (CLNT_NET_DUE_AMT + NBNR_CLNT_NET_DUE_AMT) else 0 end ) /
NULLIF(SUM(CLMS), 0)
)
from #Clms_SMRY
where SRVC_DT between @CurrentBeginDate and @CurrentEndDate)
我必须将旧查询更改为新查询才能获得正确的结果。我的旧查询用于 return 分母中的 null,因此我不必担心除以零,新查询 returns 将我的零除为 'M' (R_NTWK_CHNNL),但对于 'S' 或 R,我没有零分母。我该怎么做才能在查询 2 中获得空分母? table 的定义没有改变,想知道为什么现在 'M' 什么都没有时我没有得到空分母。另请问,我如何将 nullif
添加到查询 2 中?非常感谢。
旧查询
select SUM(CASE WHEN (GNRC_CD in ('O') and R_NTWK_CHNNL = 'M') then (CLNT_NET_DUE_AMT + NBNR_CLNT_NET_DUE_AMT) else 0 end ) / sUM(CLMS) from #Clms_SMRY where SRVC_DT between @CurrentBeginDate and @CurrentEndDate)
新查询
select SUM(CASE WHEN (GNRC_CD in ('O') ) and R_NTWK_CHNNL = 'M' then (CLNT_NET_DUE_AMT + NBNR_CLNT_NET_DUE_AMT) else 0 end ) / cast(SUM(CASE WHEN GNRC_CD in ('O') and R_NTWK_CHNNL = 'M' then (CLMS) end ) as float) from #Clms_Smry where SRVC_DT between @CurrentBeginDate and @CurrentEndDate),
使用NULLIF()
:
select (SUM(CASE WHEN (GNRC_CD in ('O') and R_NTWK_CHNNL = 'M') then (CLNT_NET_DUE_AMT + NBNR_CLNT_NET_DUE_AMT) else 0 end ) /
NULLIF(SUM(CLMS), 0)
)
from #Clms_SMRY
where SRVC_DT between @CurrentBeginDate and @CurrentEndDate)