在SQLite WHERE中添加

时间:2011-07-06 08:02:59

标签: android sqlite

我想做一个查询,我在SQLite数据库中检查两列的总和是否可能?

我试过这个并且它执行正常但没有找到任何东西:

SELECT * FROM my_table WHERE (col1 + col2) > my_value.

(我在Android中使用SQLite3数据库)

4 个答案:

答案 0 :(得分:3)

我使用的是SQLite版本3.7.7.1,它似乎对我很好。

sqlite> create table blah (x int, y int)
   ...> ;
sqlite> insert into blah values (1,1);
sqlite> insert into blah values (5,8);
sqlite> insert into blah values (0,-1);
sqlite> select * from blah where x+y>1;
1|1
5|8
sqlite> select * from blah where x+y>2;
5|8
sqlite>

您能否向我提供有关您正在使用的数据的更多信息?

ETA:在将两列的总和与另一列进行比较时,它似乎也有效:

sqlite> create table blurg (x int, y int, z int);
sqlite> insert into blurg values (2,3,1);
sqlite> insert into blurg values (1,1,3);
sqlite> select * from blurg where x+y>z;
2|3|1

答案 1 :(得分:3)

这是完全有效的语法(虽然我个人不用括号)。

您应该检查实际上是否有符合此条件的行。

这可以通过以下查询来完成:

select col1 + col2 as xx from my_table order by xx asc

并检查最后一行。

答案 2 :(得分:1)

你的语法是正确的,只要确保那里有东西。对于诊断,请从

开始
SELECT col1, col2, (col1+col2) AS thesum, my_value FROM my_table

自己做比较。通常你会发现col1​​或col2都是NULL,因此不起作用。

答案 3 :(得分:1)

可能是您的数据格式错误,因为SQLITE非常(可能太)容忍类型错误。

你跑步时看到了什么:

SELECT col1, col2 , col1 + col2 FROM my_table;