Заполните поле значениями из другого поля в MS Access - PullRequest
0 голосов
/ 18 января 2019

У меня есть одна таблица Customers, и я хочу удалить / удалить поле FullName и создать два поля; FirstName и LastName соответственно. Удобно, чтобы имена в FullName состояли только из двух частей (например, Джон Смит, Роберт Блэк). У меня есть SQL-код, совместимый с MS Access, для извлечения имени и фамилии из поля FullName ниже.

SELECT 
Mid(FullName, 1, InStr(FullName, ' ') - 1) 
AS FirstName, 
Mid(FullName, InStr(FullName, ' ') + 1, Len(FullName)) 
AS LastName 
FROM Customers 

Я хочу заполнить FirstName и LastName значениями из FullName, а затем удалить FullName. Ниже моя попытка заполнить поле FirstName в DDL.

UPDATE Customers
SET Customers.FirstName =
(SELECT Mid(FullName, 1, InStr(FullName, ' ') - 1) )

Ошибка, которую я получаю из MS Access при попытке запустить этот код, - «Операция должна использовать обновляемый запрос».

Ответы [ 3 ]

0 голосов
/ 18 января 2019

Попробуйте это. Нет необходимости использовать подзапрос для тех же столбцов таблицы и псевдонима.

UPDATE Customers
SET  FirstName =Mid(FullName, 1, InStr(FullName, ' ') - 1) 
0 голосов
/ 18 января 2019

Нет необходимости в подзапросе:

UPDATE 
    Customers
SET 
    FirstName = Mid(FullName, 1, InStr(FullName, " ") - 1),
    LastName = Mid(FullName, InStr(FullName, " ") + 1),
    FullName = Null
0 голосов
/ 18 января 2019

Вы можете попробовать ниже -

UPDATE Customers
SET Customers.FirstName =Mid(FullName, 1, InStr(FullName, ' ') - 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...