내 SQLite
데이터베이스에서 두 열의 합계를 확인하는 쿼리를 수행하고 싶습니다.추가 SQLite WHERE
나는이 함께 시도하고 괜찮 실행하지만 아무것도 발견하지 않습니다
SELECT * FROM my_table WHERE (col1 + col2) > my_value.
내 SQLite
데이터베이스에서 두 열의 합계를 확인하는 쿼리를 수행하고 싶습니다.추가 SQLite WHERE
나는이 함께 시도하고 괜찮 실행하지만 아무것도 발견하지 않습니다
SELECT * FROM my_table WHERE (col1 + col2) > my_value.
.
실제로이 조건을 충족시키는 행이 있는지 확인해야합니다.
select col1 + col2 as xx from my_table order by xx asc
과 마지막 행을 검사 :
이
는 같은 쿼리를 수행 할 수 있습니다.감사합니다 모두 내 문제는 안드로이드가 querys를 처리하는 방식으로 나타났다. 안드로이드의 쿼리 빌더는 일반 정수 열이 처리 할 수있는 쿼리의 모든 매개 변수를 문자열로 추가했지만 두 열을 함께 추가하면 더 이상 문자열과 비교할 수 없었습니다. –
또한 coalesce()를 사용하여 두 열이 모두 null이 아닌지 확인하십시오. –
귀하의 구문이 올바른지 (I 안드로이드에서 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 : 또 다른 열 두 열의 합을 비교했을 때 작업 표시 :
(나는 개인적으로 괄호를 생략 할 거라고하지만) 유효한 구문은 완벽의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