用MS Access中另一个字段的值填充一个字段

时间:2019-01-18 05:21:15

标签: sql database ms-access dml

我只有一个表“ Customers”,并且我要删除/删除“ FullName”字段并创建两个字段;名字和姓氏分别。方便的是,全名中的名称仅由两部分组成(例如John Smith,Robert Black)。我有符合MS Access的SQL代码,用于从下面的“全名”字段中提取名字和姓氏。

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

我想用FullName中的值填充FirstName和LastName,然后删除FullName。下面是我尝试在DDL中填写名字字段的信息。

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

当我尝试运行此代码时,我从MS Access中收到的错误是“操作必须使用可更新的查询”。

3 个答案:

答案 0 :(得分:1)

您可以在下面尝试-

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

答案 1 :(得分:1)

不需要子查询:

UPDATE 
    Customers
SET 
    FirstName = Mid(FullName, 1, InStr(FullName, " ") - 1),
    LastName = Mid(FullName, InStr(FullName, " ") + 1),
    FullName = Null

答案 2 :(得分:0)

尝试一下。无需对相同的表列和别名也使用子查询。

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