SQLite - значение в диапазоне - PullRequest
0 голосов
/ 16 апреля 2009

Я обновляю свою таблицу следующим утверждением:

UPDATE table SET percentage = percentage + ? WHERE id = ?

И значение, которое передается в базу данных, может быть как положительным, так и отрицательным.

Есть ли способ убедиться, что процентное значение будет лежать в диапазоне 0..100? Желательно это сделать, используя только SQLite.

Если оно меньше 0, я хочу сделать 0; Если это больше 100, я хочу сделать это 100.

Я могу сделать это через мой C-код, но было бы лучше сделать это через SQLite.

Заранее спасибо.

1 Ответ

1 голос
/ 16 апреля 2009
UPDATE table SET percentage 
= case when percentage < 0 then 0 
  when percentage > 100 then 100 
  else percentage end
WHERE id = ?;

Если вы пропустите предложение where, вы зададите проценты для всей таблицы, что, по-видимому, соответствует вашим ожиданиям.

Однако, возможно, что проценты больше 100 или меньше нуля являются законными; Я не знаю вашу проблемную область.

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