Несколько обновлений таблицы в MS Access SQL - PullRequest
0 голосов
/ 08 мая 2018

У меня есть набор значений, которые мне нужно изменить в столбце, где они соответствуют существующему значению.Например,

 new    old
100001  1001
100004  1004
100005  1005
100011  1011
100022  1022

Да, здесь есть шаблон, но этот шаблон разбивается дальше по списку, поэтому substr не будет работать повсюду.

В любом случае, надеялся сделатьчто-то вроде следующего, которое, как я знаю, неверно:

UPDATE table SET field = '100001' WHERE field = '1001',
             SET field = '100002' WHERE field = '1002',
             etc...

В кавычках, потому что поле является буквенно-цифровым, несмотря на то, что в этом примере только целые числа.

Есть ли варианты вышеэто сработает, о чем я просто не могу думать?

Попытка избежать импорта, присоединения, переименования, если это возможно.

1 Ответ

0 голосов
/ 15 мая 2018

Короче, ответ - нет, вышеописанное не сработает. Я только что создал новую таблицу для загрузки в нее нового и старого кодов и вставил столбец в таблицу, которую я хотел обновить новым кодом.

Затем я сделал JOIN в моем UPDATE, чтобы прочитать новый код в таблицу, затем из их сделал обновление, где код был NOT NULL. По сути, несколько шагов, но, похоже, в комментариях могут быть лучшие способы.

UPDATE table1 AS c INNER JOIN table2 AS n ON c.Code=n.OldCode SET c.NewCode = n.NewCode
WHERE c.Client= 175;

Тогда ...

UPDATE table1 SET Code = NewCode
WHERE Client = 175 AND NewCode IS NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...