SQL 强制显示小数值

3

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

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

现在如果我移除 /26,totalcount正确返回16。但是当我加上 / 26 时,结果显示为0,但它应该显示为完整的小数值0.615384...。有人知道为什么它没有返回完整值吗?我甚至尝试将其包装在CAST((count(myfield)/26) as double) totalcount中,但仍然返回0。
非常感谢您提供的任何建议!
1个回答

6

尝试:

SELECT COUNT(myfield/26.0) totalcount
FROM mytable

或者:

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

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


你太牛了,Goat CO!我用了你的第一个建议,效果非常好!一旦允许,我会接受这个作为正确答案。 - Phil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接