Оператор UPDATE, который обновляет любое поле с определенным значением - PullRequest
0 голосов
/ 29 августа 2018

Я только что узнал, как делать операторы обновления в SQL, и я думаю, что это может быть полезно для другой проблемы, с которой я столкнулся.

Мне нужно задать для любого столбца со значением 999 звездочку. У меня есть база данных доступа, заполняемая динамометром автоматически. Есть несколько полей, которые могут иметь это высокое значение (более 114).

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

SET field1 = "*", field2 = "*", .. field114 = "*" WHERE field1 = 999.. etc

Есть ли простой способ указать все поля? Не должно быть теста, в котором результат 999 был, и это не ошибка, которую следует игнорировать.

1 Ответ

0 голосов
/ 29 августа 2018

Обработка многих полей в равной степени является явным индикатором ненормализованного дизайна базы данных, так как имеет 114 полей. Вероятно, это ваша основная проблема, и ее исправление значительно упростит операции обновления.

В запросах на обновление вам нужно указать каждое поле. Вы можете использовать следующую конструкцию для обновления полей с 999 на *, но это несколько плохая практика, так как это касается строк, даже если ни одно из полей не имеет значения 999

UPDATE MyTable
SET
Field1 = IIF(Field1 = "999", "*", Field1),
Field2 = IIF(Field2 = "999", "*", Field2),
etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...