连接具有不同列值的表

时间:2015-04-02 09:41:56

标签: regex join oracle11g oracle-sqldeveloper

我想加入2个表,其中唯一可能的连接是两个不同的列。 A列是十二个字符长的数字,而另一个(B)是两个字符的长数字。他们可以加入,因为A就像.BB .........,所以2.和3. char取自B(在其他情况下,这是可能的)。

我认为我应该可以使用REGEXP_LIKE但是如何在此函数中使用列? '.column_name .........'自然无法正常工作。我试着环顾四周,但现在我被困住了。

表B中有20行,我想一次检查所有行。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

因此,如果我们在 colA 列中有一个表 tblA ,并且 COLB 。 我们可以创建一个中间表 tmpTblB ,其中包含 tblB 的所有列和计算值 myNum 作为 colB中的子字符串。最后加入 tblA tmpTblB

SELECT *
FROM tblA
  LEFT OUTER JOIN (
    SELECT tblB.*, SUBSTR( tblB.colB, 2, 2 ) AS myNum
    FROM tblB ) tmpTblB
  ON tblA.colA = tmpTblB.myNum