【问题标题】:Oracle SQL INNER Join based on non-matching valuesOracle SQL INNER Join 基于不匹配的值
【发布时间】:2011-12-19 17:38:09
【问题描述】:
ColA(Table1)     ColB(Table2)
AB3               AB_MNO_3
AB3               AB_PQR_3
AB4               AB_MNO_4
AB4               AB_PQR_4

我想根据上面显示的一些不相等值的两个表中的列执行Inner Join。所以,Table1 可以有 AB3 应该匹配 AB_MNO_3, AB_PQR_3AB4 应该匹配 AB_MNO_4, AB_PQR_4 两个表中这些列中的其余值确实匹配。 如果有人提供相同的建议,将不胜感激。

【问题讨论】:

    标签: sql oracle oracle11g inner-join


    【解决方案1】:

    从您的示例中: 我假设 colA 和 Colb 的前两个字符相等 和 colA 和 ColB 的最后一个字符相等

    SELECT * FROM TABLE1 t1 INNER JOIN
    TABLE2 t2 ON 
    substr(t1.ColA,0,2) =  substr(t2.ColB,0,2) 
    AND
    substr(t1.cola,length(t1.cola),1) = substr(t2.colb,length(t2.colb),1)
    

    【讨论】:

      【解决方案2】:
      SELECT * FROM Table1 tl INNER JOIN Table2 t2 
      ON (tl.ColA = t2.ColB OR (tl.ColA ='AB3' AND t2.ColB='AB_MNO_3')
      OR (tl.ColA ='AB3' AND t2.ColB='AB_PQR_3') OR (tl.ColA ='AB4' AND t2.ColB='AB_MNO_4')
      OR (tl.ColA ='AB4' AND t2.ColB='AB_PQR_4'))
      

      【讨论】:

        猜你喜欢
        • 2016-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-07
        • 2017-05-27
        • 1970-01-01
        • 1970-01-01
        • 2014-08-19
        相关资源
        最近更新 更多