当前位置: 代码迷 >> Sql Server >> 除法结果为0,为什么?该怎么处理
  详细解决方案

除法结果为0,为什么?该怎么处理

热度:7   发布时间:2016-04-27 11:11:41.0
除法结果为0,为什么?
SQL code
select sum(case d.task_state when 0 then 1 else 0 end)/sum(1),sum(case d.task_state when 0 then 1 else 0 end),sum(1)from week_task_result d 

这么写输出的结果是:0 23 24
其中第一列为0,而不是23除以24得到的值,为什么?


------解决方案--------------------
SQL code
select sum(case d.task_state when 0 then 1 else 0 end)* 1.0/sum(1),sum(case d.task_state when 0 then 1 else 0 end),sum(1)from week_task_result d
------解决方案--------------------
SQL code
select sum(case d.task_state when 0 then 1 else 0 end)*1.0/sum(1),sum(case d.task_state when 0 then 1 else 0 end),sum(1)from week_task_result d
------解决方案--------------------
精度问题
------解决方案--------------------
整数和整数乘除,结果为整数。。而23/24=0.958333,所以取整成了0。
  相关解决方案