Oracle SQL INNER Join на основе несовпадающих значений - PullRequest
1 голос
/ 01 ноября 2011
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_3, а AB4 должен сопоставляться с AB_MNO_4, AB_PQR_4 Остальные значения в этих столбцах в двух таблицах совпадают. Буду очень признателен, если кто-нибудь даст рекомендации примерно того же.

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Из ваших примеров: Я предполагаю что первые два символа 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)
1 голос
/ 01 ноября 2011
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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...