我需要用一个简单的选择来进行十进制比较操作,例如:sqlite的选择查询不起作用
SELECT * FROM表-A,时间> 0.0004
ID时间
0 0.000502
1 0.000745
2 0.000725
4 0.000197
5 0.000176
6 0.000833
7 0.000269
8 0.000307
9 0.000302
结果包含做满足比较条件的值。简而言之,“时间> 0.0004”总是评估为真,并且“时间< 0.0004”总是评估为假。
我已经尝试铸造和更改时间列的类型从小数到浮动没有成功。
如果我使用子查询,它正确地执行查询:
SELECT * FROM表-A,其中时间>(来自表-A选择时间其中id = 8);
ID时间
0 0.000502
1 0.000745
2 0.000725
6 0.000833
表创建:
CREATE TABLE “表-A”( “ID” 整数NOT NULL PRIMARY KEY,“time”decimal NOT NULL);
什么'SELECT id,time,typeof(time)FROM table_a'返回? – 2011-04-07 00:17:13
typeof(time)返回所有行的“text”。我使用“.import”命令来加载表,看起来这是问题。如果我使用“INSERT”插入记录,则值的类型是“真实”而不是“文本”。 – 2011-04-07 18:29:24
感谢您发布数据如何作为文本插入的详细说明。有时候,如果你不注意那些数据类型错误,SQLite有点棘手。就个人而言,我们所有的模式都对列进行了“检查”约束,以实施特定的数据类型。 – 2011-04-11 11:42:16