内部连接2个表基于一列中的2列和另一列中的一列

时间:2016-04-20 21:31:51

标签: sql sql-server inner-join

enter image description here

我有两个表,我想要内连接。一列是Ordind000.PROCPLANID。这有一个作业,J000012345和后缀,.00001在这一列中都有。但是在我需要加入的Job表中,作业和后缀都是单独的列。

我的猜测是我需要使用replace命令并将其写入临时表,但我希望有一个更简单的解决方案。我还需要在我认为的job列中的suffixPROCPLANID数字的开头删除小数点。

1 个答案:

答案 0 :(得分:0)

有很多方法可以操纵它,这里有一个:

SELECT columns
FROM table1 t1
INNER JOIN table2 t2 on 
SUBSTRING(t1.procplanid,2,10) + RIGHT(t1.procplanid,1) = t2.job + t2.suffix

这会将job的{​​{1}}部分(不包含小数)procplanid+的最后一位数procplanid进行比较,以{{1} }}

图片中突出显示的示例将变为:

  • J0000784749:Job = J000078474,Suffix = 9
  • J0000760622:Job = J000076062,Suffix = 2