2015-04-02 5 views
0

Я хочу присоединиться к двум таблицам, где единственное возможное объединение - двумя разными столбцами. Столбец A - это длинное число из двенадцати символов, а другое (B) - длинное число в два символа. Они могут быть соединены, потому что A подобен .BB ........., поэтому символ 2. и 3. берется из B (и ни в коем случае это невозможно).Объединить таблицы с разными значениями столбцов

Я думаю, что я должен использовать REGEXP_LIKE, но как использовать столбец в этой функции? '.column_name .........' не работает нормально. Я попытался оглянуться, но теперь я застрял.

В таблице B имеется 20 некоторых строк, и я бы хотел проверить их сразу.

Благодарим вас за внимание!

+0

Было бы хорошо, чтобы увидеть некоторые образцы данных. Как непонятно, что вы пытаетесь сделать или спросить. –

+0

Существует таблица A с 8 столбцами abd table B с 3, я хочу присоединиться к ним, но единственный способ сделать это - сделать что-то вроде этого: 903555555555 = 03 или 707123456789 = 07 –

+1

Итак, вам нужны 2-й и 3-й символы столбец таблицы 1, который должен быть сопоставлен. Используйте 'SUBSTR' –

ответ

1

Так что, если у нас есть таблица TBLA с коротким номером в колонке КОЛА и talbe TBLB с длинным номером в colB. Мы можем создать промежуточную таблицу tmpTblB который включает в себя все столбцы TBLB и вычисленное значение тупит как подстроки из 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