SQL SQLite условный запрос в SQLite (для Android) - PullRequest
1 голос
/ 02 августа 2011

Здравствуйте, у меня есть таблица с такой структурой:

ID      VALUE
1         3
2         5
3        12

если я сделаю запрос, выберите идентификатор, значение, значение + 5 из таблицы. Вот результат

ID      VALUE    NEW_VALUE
1         3         8
2         5         10
3        12         17

И что я хочу сделать запрос с указанием идентификатора и нового значения, которые возвращают всю таблицу, но с 3-м столбцом, указывающим новые значения после вставки. например для myQuery (id = 2, значение = 8)

ID      VALUE    NEW_VALUE
1         3         3
2         5         8
3        12         12

Возможно ли сделать это в том же запросе?

1 Ответ

2 голосов
/ 02 августа 2011

Вы можете использовать предложение WHERE для выбора только нужных вам строк ("...if the student has the given id..."):

             update T
             set col3 = col2 + 5
             where id = 2

Конечно, col3 должно существовать, прежде чем вы сможете его обновить.,Поэтому вам придется либо выполнить оператор ALTER-TABLE (если ваша реализация поддерживает это), либо заново создать таблицу с нужными столбцами, импортировать исходные данные (INSERT INTO YOURNEWTABLE ... SELECT ... fromYOUROLDTABLE), а затем обновите col3.

Если вы не хотите «сохранять» этот третий столбец, а хотите, чтобы он отображался только при запросе:

            select id, col2, col2 + 5 as myComputedValue 
            from T
            where id = 2

Наконец, если вы хотите отобразить все строки, но измените addend условно (добавьте ноль к столбцу col2, когда идентификатор не тот, который вы хотите, а добавьте 5, когда он есть), тогда вы можете использовать оператор CASE .

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