读书人

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

发布时间: 2012-09-15 19:09:28 作者: rapoo

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

读书人网 >SQL Server

热点推荐