私はSQLite
データベースの2つの列の合計をチェックするクエリを実行したいですか?SQLiteでの追加WHERE
私はこれを試してみました、それは大丈夫実行しますが、何も見つけられません:
SELECT * FROM my_table WHERE (col1 + col2) > my_value.
私はSQLite
データベースの2つの列の合計をチェックするクエリを実行したいですか?SQLiteでの追加WHERE
私はこれを試してみました、それは大丈夫実行しますが、何も見つけられません:
SELECT * FROM my_table WHERE (col1 + col2) > my_value.
。
実際にこの条件を満たす行があることを確認する必要があります。
これは、のようなクエリを実行できます。
select col1 + col2 as xx from my_table order by xx asc
と最後の行を調べます。
ありがとうございました。私の問題は、Androidがquerysを処理する方法にあったようです。 Androidのクエリビルダーは、通常の整数列で処理できる文字列としてすべてのパラメータを追加しましたが、2つの列を追加すると文字列と比較できなくなりました。 –
さらに、coalesce()を使用して、両方の列がヌルでないことを確認してください。 –
あなたの構文が正しい(Iは、AndroidでSQLite3のDBを使用しています)を、念そこには何かがあります。診断のために、
SELECT col1, col2, (col1+col2) AS thesum, my_value FROM my_table
で開始し、比較自分で行います。通常、col1またはcol2のいずれかがNULLで、そのために動作しないことがわかります。
私は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は:また別の列に2列の合計を比較するときに動作するように表示されます。
(私は個人的に括弧をやめるべきだが)有効な構文が完全だ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
SQLITEは型エラーを非常に(おそらく)許容しているため、データの形式が間違っている可能性があります。
あなたが実行したとき、あなたは何を参照してください:
SELECT col1, col2 , col1 + col2 FROM my_table;
そして、あなたはmy_value' 'より大きいに任意の行' col1'と 'col2'合計を_have_のですか? – paxdiablo