MS Access Update Query - PullRequest
       12

MS Access Update Query

3 голосов
/ 07 сентября 2011

Я пытаюсь выяснить, действительно ли мне нужен запрос на обновление. У меня есть поле с именем account_numbers, и каждая запись состоит из трехзначного числа, которому предшествует буква «M».

Account number

M001
M002
M003

И это продолжается до 999. Все, что я хочу сделать, это удалить «М» с каждого номера счета. Я просмотрел учебники Microsoft для запроса на обновление, и, похоже, мне может понадобиться что-то еще. Может кто-нибудь сказать, пожалуйста, самый простой способ сделать это?

Спасибо

Ответы [ 4 ]

6 голосов
/ 07 сентября 2011

попробуйте это:

UPDATE account_numbers
SET AccountNumber = Replace([AccountNumber],"M","")

РЕДАКТИРОВАТЬ: сначала сделать резервную копию: D

2 голосов
/ 07 сентября 2011

Если вы хотите использовать запрос на обновление, вы можете использовать функции Replace () или Mid (), как предложено в других ответах. Однако, так как вы хотите сохранить только 3 самых правых символа, мой импульс будет заключаться в достижении функции Right (). Вот пример из непосредственного окна:

? Right("M001", 3)
001

Итак, в запросе это может выглядеть примерно так:

UPDATE account_numbers
SET AccountNumber = Right(AccountNumber , 3)

Если могут быть значения AccountNumber, которые не соответствуют шаблону «M» плюс 3 цифры, вы можете добавить предложение WHERE, чтобы игнорировать их в обновлении:

WHERE AccountNumber Like "M###"
1 голос
/ 07 сентября 2011

Если это один раз, проще всего найти и заменить в столбце.

0 голосов
/ 07 сентября 2011

Если вы можете быть абсолютно уверены, что единственная буква М в номерах счетов - это та, что в начале, тогда Ответ Давиде Пираса (замена «М» на пустую строку) вполне подойдет. 1003 *

Однако, если в номерах счетов больше «М» и вы просто хотите избавиться от первого (например: MKLMN -> KLMN), замена не будет работать, и вы пришлось бы «обрезать» только первый символ:

UPDATE account_numbers 
SET AccountNumber = Mid([AccountNumber],2);
...