Объединять таблицы в частично совпадающих столбцах - PullRequest
0 голосов
/ 19 ноября 2018

Как объединить две таблицы в частично совпадающих столбцах в SQL?

Например:

T1.column содержит строку 'c/ar', а T2.column содержит строку 'ar', и я хочу, чтобы в этом случае таблицы были объединены.

Я пытался

select column2, 
       column3 
from T1 join T2 on T1.column like '%T2.column';

но возвращает 0 строк.

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

В качестве альтернативы вы можете использовать функцию strpos как

select column1, column2 
  from T1 
  join T2 on strpos(T1.column1,T2.column2)>0;

Rextester Demo

Функция PostgreSQL strpos () используется для поиска позиции, из которой сопоставляется подстрока в строке.

Синтаксис: strpos (, )

0 голосов
/ 19 ноября 2018

Вы также можете использовать функции RIGHT() и LENGTH(), так как вы проверяете, существует ли T2.Column в конце T1.Column

ON RIGHT(T1.Column1, LENGTH(T2.Column2)) = T2.Column2

Демо

0 голосов
/ 19 ноября 2018

Вам нужно объединить '%' со столбцом T2.column, а не со строковым значением 'T2.column':

like ('%' || T2.column)

или

like CONCAT('%', T2.column)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...