3

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

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

现在,当我删除 /26 时,总计数应返回 16。但是,当我将除以 26 重新添加时,结果显示为 0,但它应该显示为 0.615384 的完整十进制值...有谁知道为什么它没有返回完整值?我什至尝试将它包装在 CAST((count(myfield)/26) as double) totalcount 中,但它仍然返回 0。

提前感谢您的任何建议!!!!

4

1 回答 1

6

尝试:

SELECT COUNT(myfield/26.0) totalcount
FROM mytable

或者:

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

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

于 2013-09-24T16:48:30.587 回答