我在Excel中有500条记录,它包含一些与SQL DB表中的列相同的列。我有旧的列值 以及excel中的新列值。
实施例
Name Age OldEmployeeID NewEmployeeID
x 1 100 200
y 2 101 201
z 3 102 202
SQLTABLE
Name Age Department City EmployeeID
x 1 HR x 100
a 4 HR x 103
y 2 Admin x 101
b 5 Finance x 104
c 3 IT x 102
我想将SQL表中的EmployeeID列更新为excel中的NewEmployeeID。 任何人都可以建议如何编写SQL查询来更新sql表。
答案 0 :(得分:1)
假设该列不是ID列或具有其他约束,您可以:
选项1:
假设您的表与屏幕截图类似,您可以使用此公式连接列,然后将其拖放并直接复制到SQL中。
=CONCATENATE("UPDATE dbo.EmployeeTable SET EmployeeID = ",D2," WHERE EmployeeID = ",C2,";")
选项2:
您可以将Excel文件导入SQL并使用如下所示的语句。但是,如果任何旧的EmployeeID与新的EmployeeID重叠,请务必小心。例如,如果Jim的ID为100,而他的新ID为500且Jane的新ID为100,如果您不小心再次运行它,Jane也将获得500的ID。
UPDATE EmployeeTable SET EmployeeID = Excel.NewEmployeeID
FROM
EmployeeTable
JOIN ExcelTable
ON Excel.OldEmployeeID = EmployeeTable.EmployeeID
;