开发者社区> 问答> 正文

数据库视图里要创建一个计算的字段,如何避免被除数为零:配置无效 

数据库视图里要创建一个字段,是个除法,但被除数可能为零,我按照网上讲的CASE WHEN方法改了之后,总提示我表达式无效或缺少,我贴出来我的代码

ROUND(CASE WHEN V_RECOMMAND_CANDIDATE.vote_total > 0 THEN ((CAST(RECOMMAND_CANDIDATE_1.vote_agree AS FLOAT) / V_RECOMMAND_CANDIDATE.vote_total * 100, 2)ELSE 0 END AS Expr1)

请问这错在哪里?

展开
收起
kun坤 2020-05-31 18:46:57 781 0
1 条回答
写回答
取消 提交回答
  • CASE WHEN V_RECOMMAND_CANDIDATE.vote_total > 0 THEN 
      ROUND(
          CAST(RECOMMAND_CANDIDATE_1.vote_agree AS FLOAT) / V_RECOMMAND_CANDIDATE.vote_total * 100
         , 2) 
         ELSE 0 
     END AS Expr1

    ######谢谢###### 还有一种办法,用NULLIF处理除数,当除数为0时被改为NULL,NULL做除数返回结果也是NULL

    NULLIF(V_RECOMMAND_CANDIDATE.vote_total,0)

    不会报错,另外结果为0和NULL含义还是不同的

    2020-05-31 18:47:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载