如何更新列值取决于同一表中的另一列

时间:2019-05-25 10:44:45

标签: sql sql-server

如何更新列值取决于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

我要进行更新查询,该查询必须在id的{​​{1}}中设置joc_id
输出应为:

joc_id = loc_id

1 个答案:

答案 0 :(得分:1)

您可以输入self-join来完成此操作(如果我正确理解了该问题)。我假设前6行在NULLs中有joc_id

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