2009-04-15 9 views
0

에서 값이 나는 다음과 같은 문으로 내 테이블을 갱신하고있다.SQLite는 범위

백분율 값이 0..100 범위에 있는지 확인하는 방법이 있습니까? SQLite 만 사용하여이 작업을 수행하는 것이 바람직합니다.

0보다 작 으면 0으로 만들고 싶습니다. 그것이 100 이상이면 100으로 만들고 싶습니다.

내 C 코드로 처리 할 수는 있지만 SQLite로 처리하는 것이 좋습니다.

미리 감사드립니다. 당신이 where 절을 생략 할 경우

답변

1
UPDATE table SET percentage 
= case when percentage < 0 then 0 
    when percentage > 100 then 100 
    else percentage end 
WHERE id = ?; 

, 당신은 당신이 원하는 아마도 무엇이다, 전체 테이블에 대한 비율을 설정합니다.

그러나 100보다 크거나 0보다 작은 비율이 합법적 일 수 있습니다. 나는 당신의 문제 영역을 모른다.

+0

감사합니다. "UPDATE table SET percentage = case WHEN (백분율 +?) <0, 0 WHEN (백분율 +?)> 100 100 ELSE (백분율 +?) END WHERE word_id =?" ; 3 개의 기호 모두에 동일한 값을 바인딩해야합니까? " ? 아니면 한 번 할 수있는 방법이 있습니까? –

+0

id를 제외하고 아무것도 바인딩 할 필요가 없습니다. 내가 준/현존 /이라는 진술을 사용하십시오. 또는 where 절을 생략하고 사용할 수 있습니다. – tpdi