连接具有不同列值的表
Join tables with different column values
我想连接 2 table,其中唯一可能的连接是通过两个不同的列。
A 列是十二个字符长的数字,而另一列 (B) 是两个字符长的数字。他们可以 ba 加入,因为 A 就像 .BB....... ,所以 2. 和 3. char 取自 B(在其他情况下这是不可能的)。
我想我应该可以使用 REGEXP_LIKE 但我如何使用此函数中的列? '.column_name.......' 不能正常工作。我试着环顾四周,但我现在卡住了。
在table B中有20行,我想一次全部检查。
感谢您的宝贵时间!
所以如果我们有一个 table tblA 在 colA 列中有一个短数字和一个 talbe tblB 在 colB 中有一个长数字。
我们可以创建一个中间 table 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
我想连接 2 table,其中唯一可能的连接是通过两个不同的列。 A 列是十二个字符长的数字,而另一列 (B) 是两个字符长的数字。他们可以 ba 加入,因为 A 就像 .BB....... ,所以 2. 和 3. char 取自 B(在其他情况下这是不可能的)。
我想我应该可以使用 REGEXP_LIKE 但我如何使用此函数中的列? '.column_name.......' 不能正常工作。我试着环顾四周,但我现在卡住了。
在table B中有20行,我想一次全部检查。
感谢您的宝贵时间!
所以如果我们有一个 table tblA 在 colA 列中有一个短数字和一个 talbe tblB 在 colB 中有一个长数字。 我们可以创建一个中间 table 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