2011-07-06 3 views
0

SQLite 데이터베이스에서 두 열의 합계를 확인하는 쿼리를 수행하고 싶습니다.추가 SQLite WHERE

나는이 함께 시도하고 괜찮 실행하지만 아무것도 발견하지 않습니다

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

+2

을 그리고 당신은'my_value'보다 큰 모든 행'col1'와'col2' 합 _have_합니까? – paxdiablo

답변

3

.

실제로이 조건을 충족시키는 행이 있는지 확인해야합니다.

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

과 마지막 행을 검사 :

는 같은 쿼리를 수행 할 수 있습니다.

+1

감사합니다 모두 내 문제는 안드로이드가 querys를 처리하는 방식으로 나타났다. 안드로이드의 쿼리 빌더는 일반 정수 열이 처리 할 수있는 쿼리의 모든 매개 변수를 문자열로 추가했지만 두 열을 함께 추가하면 더 이상 문자열과 비교할 수 없었습니다. –

+0

또한 coalesce()를 사용하여 두 열이 모두 null이 아닌지 확인하십시오. –

1

귀하의 구문이 올바른지 (I 안드로이드에서 sqlite3를의 DB를 사용하고 있습니다)를 바로 확인 거기에 뭔가가 있습니다. 진단을 위해

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

으로 시작하여 직접 비교하십시오. 일반적으로 col1 또는 col2 중 하나가 NULL이고 그 때문에 작동하지 않는다는 것을 알 수 있습니다.

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

SQLITE가 유형 오류를 매우 용인하기 때문에 데이터가 잘못된 형식 일 수 있습니다. 실행할 때

당신은 무엇을 보는가 :

SELECT col1, col2 , col1 + col2 FROM my_table; 
관련 문제