SQL联接类似运算符

问题描述 投票:0回答:1

我知道这个问题已经问过几次了,我已经尝试使用解决方案来解决我的问题。不幸的是,它没有得到我想要的输出。我需要通过将一个表中的ID列连接到另一个表(其中该连接列没有确切值)来更新ID列。

TableA                                               TableB
EmpNo   EmpName      ID                              EmpNo          EmpName        ID    TermDate
101     John Doe     Null                            250termed_101  John Doe       250   11-15-2018
102     Jane Doe     Null                            251termed_102  Jane Doe       251   02-25-2019
101     Bryan Adams  Null                            252termed_101   Bryan Adams   252   03-12-2020

这是我尝试过的操作,但由于以下查询给了我重复项而无法获得所需的输出:

select *
from TableA as A left join
     TableB as B
     on B.EmpNo like '%' + A.EmpNo + '%' and A.EmpNo is not null

需要输出:EmpNo EmpName ID101 John Doe 250第102章251101布赖恩·亚当斯[252

我需要通过将EmpNo上的这两个表连接到TableA中来填充ID列。对于第一张记录,约翰·多伊(John Doe)于2018年11月15日被解雇,其员工编号分配给具有唯一ID的布莱恩·亚当斯(Bryan Adams)。我需要为当时拥有该号码的相应员工从TableB的ID列填充到Table A中。

提前感谢

sql sql-server tsql join sql-server-2017
1个回答
0
投票

您似乎在正确的路径上,更新语句应类似于以下内容,还请注意我如何使相似比较更加准确:

update A SET
    ID = B.ID
from 
    TableA as A 
    left join TableB as B on 
        B.EmpNo like '%_' + A.EmpNo and 
        A.EmpNo is not null;
© www.soinside.com 2019 - 2024. All rights reserved.