2015-04-02 94 views
0

我想連接2個表,其中唯一可能的連接是由兩個不同的列組成。 列A是一個十二個字符長的數字,而另一個(B)是兩個字符長的數字。他們可以加入,因爲A就像.BB .........,所以2和3是從B中取出的(在其他情況下這是可能的)。連接具有不同列值的表

我想我應該可以使用REGEXP_LIKE,但是如何在此函數中使用列? '.column_name .........'不自然地工作。我試圖環顧四周,但我現在卡住了。

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

謝謝你的時間!

+0

這將是很好的看到一些樣本數據。因爲你不清楚你想要做什麼或要求什麼。 – 2015-04-02 09:57:15

+0

有A列8列abd B列3列,我想加入他們,但唯一的方法就是這樣做:903555555555 = 03或707123456789 = 07 – 2015-04-02 09:59:11

+1

所以你想要第二個和第三個字符表1的列將被匹配。使用'SUBSTR' – 2015-04-02 10:43:30

回答

1

因此,如果我們有一個表TBLA列可樂短號碼和一個talbe TBLB有長數COLB。 我們可以創建一箇中間表tmpTblB包括TBLB的所有列並計算值myNum的作爲一個子串出COLB。最後,剛剛加入的TBLAtmpTblB

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