sql 除法中如何防止被除数为0?(急)
SUM(ROUND(S1.SAL_AMT/S1.SAL_NOS_PRM_AMT)ADD_COUNT,SUM(ROUND(S1.SAL_PRM_AMT/S1.RECV_PR...
SUM(ROUND(S1.SAL_AMT / S1.SAL_NOS_PRM_AMT ) ADD_COUNT,
SUM(ROUND(S1.SAL_PRM_AMT / S1.RECV_PRM_AMT)) ADD_SALE_COUNT
如果要用CASE语句判断的话,该如何进行?这两个都需要判断
下面是我自己写的,可是这样排列查询会报错,麻烦帮帮我啦
CASE WHEN S1.SAL_NOS_PRM_AMT = 0 THEN 1
ELSE S1.SAL_NOS_PRM_AMT
END SAL_NOS_PRM_AMT,
CASE WHEN S1.RECV_PRM_AMT = 0 THEN
ELSE S1.RECV_PRM_AMT
END RECV_PRM_AMT,
SUM(ROUND(S1.SAL_AMT / S1.SAL_NOS_PRM_AMT ) ADD_COUNT,
SUM(ROUND(S1.SAL_PRM_AMT / S1.RECV_PRM_AMT)) ADD_SALE_COUNT 展开
SUM(ROUND(S1.SAL_PRM_AMT / S1.RECV_PRM_AMT)) ADD_SALE_COUNT
如果要用CASE语句判断的话,该如何进行?这两个都需要判断
下面是我自己写的,可是这样排列查询会报错,麻烦帮帮我啦
CASE WHEN S1.SAL_NOS_PRM_AMT = 0 THEN 1
ELSE S1.SAL_NOS_PRM_AMT
END SAL_NOS_PRM_AMT,
CASE WHEN S1.RECV_PRM_AMT = 0 THEN
ELSE S1.RECV_PRM_AMT
END RECV_PRM_AMT,
SUM(ROUND(S1.SAL_AMT / S1.SAL_NOS_PRM_AMT ) ADD_COUNT,
SUM(ROUND(S1.SAL_PRM_AMT / S1.RECV_PRM_AMT)) ADD_SALE_COUNT 展开
2个回答
展开全部
用decode函数。
如:decode(S1.SAL_NOS_PRM_AMT,0,1,S1.SAL_NOS_PRM_AMT)
decode(S1.RECV_PRM_AMT,0,1,S1.RECV_PRM_AMT)
如:decode(S1.SAL_NOS_PRM_AMT,0,1,S1.SAL_NOS_PRM_AMT)
decode(S1.RECV_PRM_AMT,0,1,S1.RECV_PRM_AMT)
追问
这里面的参数怎么一样的啊?不应该是下面这样的么?
decode(S1.SAL_AMT,0,1,S1.SAL_NOS_PRM_AMT)
decode(S1.SAL_PRM_AMT,0,1,S1.RECV_PRM_AMT)
追答
decode(S1.SAL_NOS_PRM_AMT,0,1,S1.SAL_NOS_PRM_AMT)
的意思是:
如果S1.SAL_NOS_PRM_AMT=0 那么结果为1
否则结果为S1.SAL_NOS_PRM_AMT
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询