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



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

相关内容

  • 没有找到相关文章

最新更新