Вопрос:
Я занимаюсь некоторыми работами в MS Access, и мне нужно добавить префикс в кучу полей, я знаю SQL, но, похоже, он не работает одинаково в Access
В основном мне нужно это перевести на команду, которая будет работать в доступе:
UPDATE myTable SET [My Column] = CONCAT («Prefix «, [My Column]) WHERE [Different Column]=’someValue’;
Я искал вверх и вниз и не могу найти простой перевод.
Лучший ответ:UPDATE myTable SET [My Column] = «Prefix » & [My Column] WHERE [Different Column]=’someValue’;
Насколько я знаю, нет CONCAT
Ответ №1
В Access доступны два оператора конкатенации: +; и &. Они отличаются тем, как они имеют дело с Null.
«foo» + Null возвращает Null
«foo» & Null возвращает «foo»
Итак, если вы хотите обновить поля Null [My Column], чтобы впоследствии содержать «Prefix «, используйте…
SET [My Column] = «Prefix » & [My Column]
Но если вы предпочитаете оставить его как Null, вы можете использовать вместо этого оператор +…
SET [My Column] = «Prefix » + [My Column]
Однако во втором случае вы можете пересмотреть предложение WHERE, чтобы игнорировать строки, где [My Column] содержит Null.
WHERE [Different Column]=’someValue’ AND [My Column] Is Not Null Ответ №2
Вы можете использовать оператор &:
UPDATE myTable SET [My Column] = «Prefix » & [My Column] WHERE [Different Column]=’someValue’; Ответ №3
Поскольку в MS-ACCESS нет функции Concat, вы можете просто объединить обе строки с оператором +:
UPDATE myTable SET [My Column] = «Prefix » + [My Column] WHERE [Different Column]=’someValue’; Ответ №4
INSERT INTO myTable (myFields) VALUES (myValue1,… ‘Bfa 10’ + Chr(37), ) похожую проблему: INSERT INTO myTable (myFields) VALUES (myValue1,… ‘Bfa 10’ + Chr(37), ) не работает. Я попытался объединить, используя “&”, та же ошибка, “Несоответствие типов данных в выражении критериев”. Есть какие-нибудь подсказки?
Ответ №5
У меня похожая проблема. Я пытаюсь: INSERT INTO myTable (myFields) VALUES (myValues,… ‘Bfa 10’ + Chr(37), ) Я использовал начальное значение “BFA 10%”, объединяя оба “+” и “&”, и все они дают “Несоответствие типов данных в выражении критериев”. ошибка. Есть какие-нибудь подсказки?