开发者社区> 问答> 正文

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

数据库视图里要创建一个字段,是个除法,但被除数可能为零,我按照网上讲的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 810 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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PolarDB-PG:数据库“0”改造,提升企业级应用能力 立即下载
2023云栖大会:一路伴随成长-集中分布式一体化数据库 立即下载
2023云栖大会:MyBase云原生浪潮下的数据库上云新选择 立即下载