Дополнение в SQLite ГДЕ - PullRequest
       4

Дополнение в SQLite ГДЕ

0 голосов
/ 06 июля 2011

Я хочу сделать запрос, где я проверяю сумму двух столбцов в моей базе данных SQLite, возможно ли это?

Я пробовал с этим, и он работает нормально, но ничего не находит:

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

(я использую базу данных SQLite3 в Android)

Ответы [ 4 ]

3 голосов
/ 06 июля 2011

Я нахожусь на 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
3 голосов
/ 06 июля 2011

Это совершенно правильный синтаксис (хотя я бы не стал использовать скобки).

Вам следует убедиться, что у вас действительно есть строки, соответствующие этому условию.

Это можно сделать с помощью запроса:

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

и осматривая последний ряд.

1 голос
/ 06 июля 2011

Возможно, ваши данные имеют неправильный формат, поскольку SQLITE очень (возможно, слишком) прощает ошибки типа.

Что вы видите при запуске:

SELECT col1, col2 , col1 + col2 FROM my_table;
1 голос
/ 06 июля 2011

Ваш синтаксис правильный, просто убедитесь, что там что-то есть. Для диагностики начните с

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

И сделай сравнение сам. Обычно вы обнаруживаете, что col1 или col2 имеет значение NULL и из-за этого не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...