我想做一个查询,我在SQLite
数据库中检查两列的总和是否可能?
我试过这个并且它执行正常但没有找到任何东西:
SELECT * FROM my_table WHERE (col1 + col2) > my_value.
(我在Android中使用SQLite3数据库)
答案 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;