msAccess将数据添加到匹配的多行

时间:2018-09-27 10:03:34

标签: sql ms-access-2010 insert-into

我有一个很大的值列表,可以添加到ms Access数据库的新列中(不幸的是,数据存储在SharePoint列表中)。

该数据库包含客户ID,我需要将数据添加到新列中,该数据将特定于每个客户ID。

例如,我要添加的电子表格数据:

Cust ID | DataToAdd
  1     |   Car
  2     |   Boat
  3     |   Bike
  4     |   Plane

我的表的设置类似于:

Cust ID | Location | DataToAdd
  1     |  Europe  |
  2     |  Asia    |
  3     |  Africa  |
  4     |  US      | 

我知道如何使用以下命令分别插入值(但数据长成千上万条记录):

Insert Into [MyTable] (DataToAdd) Values (Car)
where [Cust ID] = 1

有没有一种方法可以批量将所有DataToAdd列添加到CustID相同的表中?

2 个答案:

答案 0 :(得分:0)

使用新数据创建登台表。

[stagingTable]
Cust ID | DataToAdd
  1     |   Car
  2     |   Boat
  3     |   Bike
  4     |   Plane

并更新您的目标表

UPDATE [MyTable]
INNER JOIN [stagingTable] ON [MyTable].[Cust ID] = [stagingTable].[Cust ID]
SET [MyTable].[DataToAdd] = [stagingTable].[DataToAdd]

答案 1 :(得分:0)

A staging table is definitely a good idea.  You can also use `switch`:

update t
    set datatoadd = switch(customerid = 1, 'car',
                           customerid = 2, 'boat',
                           customerid = 3, 'bike',
                           customerid = 4, 'plane',
                           1=1, datatoadd
                          );

您可以使用电子表格中的公式构造每个条件。这样可以很容易地生成这样的查询。