一尘不染

SQL Force显示十进制值

sql

我正在使用Firebird数据库,正在尝试以下sql,但每次它返回0而不是0.61538(等等)。

SELECT (COUNT(myfield)/26) totalcount
FROM mytable

现在,当我删除/ 26时,totalcount会返回16。但是,当我将26除后,结果显示为0,但应显示为完整的十进制值0.615384
…有人知道为什么它不返回完整值吗?我什至尝试将其包装在CAST((count(myfield)/
26)中为double)totalcount,但它仍返回0。

预先感谢您的任何建议!!!!


阅读 181

收藏
2021-03-08

共1个答案

一尘不染

尝试:

SELECT COUNT(myfield/26.0) totalcount
FROM mytable

或者:

SELECT COUNT(CAST(myfield as double)/26) totalcount
FROM mytable

不熟悉Firebird,但是在其他实现中,您必须在除法之前将分子或分母强制转换/转换为小数,因为整数除法会返回整数值。

2021-03-08