如何更新列值取决于sql-server
中同一表的另一列值id loc_id joc_id
246 601
247 602
249 604
251 606
253 608
254 609
330 41 601
338 68 601
332 50 602
358 52 602
335 63 604
341 71 606
342 72 606
349 48 606
347 46 608
348 47 609
我想进行更新查询,该查询必须在joc_id
中设置id
,其中joc_id = loc_id
。
输出应该像:
id loc_id joc_id
246 601
247 602
249 604
251 606
253 608
254 609
330 41 246
338 68 246
332 50 247
358 52 247
335 63 249
341 71 251
342 72 251
349 48 251
347 46 253
348 47 254
您可以通过制作self-join
(如果我正确理解问题(来做到这一点。我以为前6行在joc_id
中具有NULLs
。
update y1
set y1.joc_id = y2.id
from yourTable as y1
join yourTable as y2
on y1.joc_id = y2.loc_id
where y1.joc_id is not null