sqlite:数学运算不是 return 数字,即使单元格是真实的
sqlite: mathematical operation doesn't return numeric, even though the cell is REAL
我有一个包含三列的 table
:traffic INTEGER, revtraffic INTEGER, ratio REAL
。
当我按以下方式更新比率列时:
UPDATE table
SET ratio = revtraffic/traffic
它 returns 在所有单元格中为 0.0。但是,如果写:
SET ratio = revtraffic*100/traffic
然后它会显示正确的结果,但显然,100 倍幅度太大了。到底是怎么回事?
revtraffic
和 traffic
是整数,因此将它们除以 integer division,returns 仅除法的 "whole" 部分(即小数点左边的部分)。当您将此结果分配给 real
.
时,此结果将提升为 real
您可以通过将其中一个参数显式转换为 real
:
来解决此问题
UPDATE table SET ratio = (CAST revtraffic AS REAL)/traffic
我有一个包含三列的 table
:traffic INTEGER, revtraffic INTEGER, ratio REAL
。
当我按以下方式更新比率列时:
UPDATE table
SET ratio = revtraffic/traffic
它 returns 在所有单元格中为 0.0。但是,如果写:
SET ratio = revtraffic*100/traffic
然后它会显示正确的结果,但显然,100 倍幅度太大了。到底是怎么回事?
revtraffic
和 traffic
是整数,因此将它们除以 integer division,returns 仅除法的 "whole" 部分(即小数点左边的部分)。当您将此结果分配给 real
.
real
您可以通过将其中一个参数显式转换为 real
:
UPDATE table SET ratio = (CAST revtraffic AS REAL)/traffic