Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何连接SQL Server中ID不相同的两个表?_Sql Server - Fatal编程技术网

Sql server 如何连接SQL Server中ID不相同的两个表?

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 用两个表的字段在一个简单查询中链接这两个表的解决方案是什么 这里有更多的信息 您将

我在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