Sql server 如何连接SQL Server中ID不相同的两个表?
我在MS SQL中有两个表,我正在使用MS Studio。第一个表称为register,它有一个字段列表。第二个表称为Plan,它有一个字段列表 表寄存器中的唯一键称为RegisterID 表计划中的唯一键称为RegisterID 目标是用左键链接,将注册加入计划。我的困难在于ID不完全相同:计划中的ID为xxxx xxxx,是ID的值。寄存器中的ID为xxxx\u 0 xxxx,是与计划添加的值相同的值\u 0 用两个表的字段在一个简单查询中链接这两个表的解决方案是什么 这里有更多的信息 您将找到这两个表以及查询的预期结果。 表结构 预期结果Sql server 如何连接SQL Server中ID不相同的两个表?,sql-server,Sql Server,我在MS SQL中有两个表,我正在使用MS Studio。第一个表称为register,它有一个字段列表。第二个表称为Plan,它有一个字段列表 表寄存器中的唯一键称为RegisterID 表计划中的唯一键称为RegisterID 目标是用左键链接,将注册加入计划。我的困难在于ID不完全相同:计划中的ID为xxxx xxxx,是ID的值。寄存器中的ID为xxxx\u 0 xxxx,是与计划添加的值相同的值\u 0 用两个表的字段在一个简单查询中链接这两个表的解决方案是什么 这里有更多的信息 您将
请注意,我是初学者。将字符添加到第一个字段或从第二个字段中删除
select *
from register
left outer join plan on register.RegisterID+'_0' = plan.RegisterID
如果ID的长度始终相同,则有第三个选项
select *
from register
left outer join plan on register.RegisterID = LEFT(plan.RegisterID,6)
您可以尝试以下方法:
SELECT *
FROM Register R
LEFT OUTER JOIN [Plan] P
ON LEFT(R.RegisterID, LEN(R.RegisterID) - 2) = P.RegisterID
表达式LEFTR.RegisterID,LENR.RegisterID-2将从Register.RegisterID中删除“\u 0”,联接将正常工作。只需删除带有替换的“\u 0”。。。Register.RegisterID=REPLACEPlan.RegisterID,'.'u 0',您能用数据显示您的表结构吗?您的预期结果如何?从下一次开始,请您使用格式化文本DDL提问,将样本数据作为输入,您尝试了什么,当前结果和预期结果以文本格式显示,以便有人可以在查询中使用。图像在大多数情况下都没有帮助。
SELECT *
FROM Register R
LEFT OUTER JOIN [Plan] P
ON LEFT(R.RegisterID, LEN(R.RegisterID) - 2) = P.RegisterID