在sqlite中将int转换为real

时间:2011-11-29 03:51:30

标签: sql sqlite casting division

sqlite中的除法返回整数值

sqlite> select totalUsers/totalBids from 
(select (select count(*) from Bids) as totalBids , 
(select count(*) from Users) as totalUsers) A;
1

我们可以对结果进行类型转换以获得除法结果的实际值吗?

4 个答案:

答案 0 :(得分:112)

只需将其中一个数字乘以1.0

SELECT something*1.0/total FROM somewhere

这将为您提供浮点除法而不是整数除法。

答案 1 :(得分:41)

在Sqlite中,整数除以另一个整数将始终向下舍入到最接近的整数。

因此,如果将枚举器转换为浮点数:

SELECT CAST(field1 AS FLOAT) / field2

答案 2 :(得分:7)

select cast ( ( select 1 ) as real );

https://www.sqlite.org/lang_expr.html#castexpr

答案 3 :(得分:2)

或者如果您想根据文本列更新列:

UPDATE table_with_fields SET real_field=cast(field_with_txt AS real)