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)
我尝试过的:
有一种SQL方法可以很快地完成这项工作吗?
编辑:对于未来的旅行者,CameraLocationID和LocationID在不同的表中.在应用UPDATE之前,SELECT将它们组合成一个输出.
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)
如果不是这种情况,请提供有关表格结构和当前数据的完整信息.