【发布时间】:2020-03-25 17:03:16
【问题描述】:
我知道这个问题已被问过几次,我已尝试使用该解决方案来解决我的问题。不幸的是,它没有得到我想要的输出。我需要通过将一个表中的 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 ID
101 John Doe 250
102 Jane Doe 251
101 Bryan Adams 252
我需要通过在 EmpNo 上连接这 2 个表来将 TableB 中的 ID 列填充到 TableA 中。对于第一条记录,John Doe 于 2018 年 11 月 15 日被终止,他的员工编号被分配给具有唯一 ID 的 Bryan Adams。我需要将表 B 中的 ID 列填充到表 A 中,以获取当时拥有该编号的相应员工。
提前致谢
【问题讨论】:
-
你能比“失败”更模糊一点吗?请阅读this 了解一些改进问题的技巧。
-
@HABO,这是讽刺还是你的意思是“更具体一点”?
-
你在什么地方加入两张桌子?如果你不设置连接条件,它将做 2 个表的笛卡尔积。
标签: sql sql-server tsql join sql-server-2017