如何在SQL中使用返回的数据更新单列?

Sou*_*ers 1 sql sql-server sql-server-2016

给定下面SELECT语句的输出,如何将所有记录的"CameraLocationID"字段更新为"LocationID"字段中的值?

当前状态:

ItemID  CameraID    CameraLocationID    LocationID
2       23038       NULL                335
3       23039       NULL                67
4       23040       NULL                34
5       23041       NULL                234
Run Code Online (Sandbox Code Playgroud)

期望的输出:

ItemID  CameraID    CameraLocationID    LocationID
2       23038       335                 335
3       23039       67                  67
4       23040       34                  34
5       23041       234                 234
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 选择,然后尝试使用SSMS复制/粘贴单个列
  • INSERT INTO(几乎知道这不会起作用,因为我本身并不是真正"插入"
  • 将LocationID值复制并粘贴到Excel中,然后尝试使用SSMS c/p回到SQL

有一种SQL方法可以很快地完成这项工作吗?

编辑:对于未来的旅行者,CameraLocationID和LocationID在不同的表中.在应用UPDATE之前,SELECT将它们组合成一个输出.

Cet*_*soz 5

Update myTable set CameraLocationID = LocationID;
Run Code Online (Sandbox Code Playgroud)

是你所需要的全部.

如果locationID来自不同的表,那么你需要一个ID字段进行链接,我认为源和目标都有CameraId字段:

Update targetTable
set CameraLocationId = sourceTable.LocationId
from sourceTable 
where targetTable.CameraID = sourceTable.CameraID;
Run Code Online (Sandbox Code Playgroud)

如果不是这种情况,请提供有关表格结构和当前数据的完整信息.