首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-09-15 
除法结果为0,为什么?SQL codeselect sum(case d.task_state when 0 then 1 else 0 end)/sum(1),sum(case d

除法结果为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 

这么写输出的结果是:02324
其中第一列为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。

热点排行