SQLite:数学运算的结果总是一个文本

时间:2014-09-02 12:26:51

标签: sqlite delphi sqlitestudio

我创建了下表:

CREATE TABLE test (a INT,b INT);

我插入一些数据后:

INSERT INTO test VALUES(1,2);

执行此SELECT时:

SELECT cast(b as real) as x, a * b as y FROM teste

字段“x”和“y”以数据类型TEXT返回。我正在使用Delphi和SQLiteStudio 2.1.5,并且都返回相同的数据类型。

我需要那个字段x是实数而y是int。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

对我而言,奇怪的是,在Sqlite中,列类型是“推荐”。但分析这个我改变了我的程序。我用正确的类型手动创建了字段。所以该计划开始运作。

问题是当您打开查询并且Delphi自动创建列时。在这种情况下,使用强制转换或数学运算的列创建为文本字段。

答案 1 :(得分:0)

Sqlite没有列数据类型。这只是文字。根据您的表达式,它会尝试为您进行转换。对于您的数学表达式,您需要进行强制转换,以便为delphi创建所需的列类型提示。