Исправление синтаксиса для запроса на ОБНОВЛЕНИЕ с помощью подзапроса SELECT

#sql #ms-access

#sql #ms-access

Вопрос:

Я пытаюсь выполнить в UPDATE своем наборе WHERE SELECT данных условие, используя Instr .

 UPDATE [Extract] SET [Type] = 'Main'
WHERE
SELECT Instr([Name],'Main')
FROM [Extract]>0; 
  

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

Комментарии:

1. Переместите свой >0 before FROM

2. Я бы также предложил изменить имена ваших полей TYPE и NAME на не зарезервированные слова

Ответ №1:

Если вы пытаетесь выполнить обновление записей, в которых [Name] содержится ‘Main’, вы можете сделать это более простым способом SELECT вообще без a . Используйте like() и * подстановочный знак. Вот так:

 UPDATE [Extract] 
SET [Type] = 'Main'
WHERE [Name] like ('*Main*')
  

* позволяет любой символьной строке существовать по обе стороны от строки ‘Main’.