Извлечь подстроку из столбца на основе значений из другой таблицы в SQL - PullRequest
0 голосов
/ 27 марта 2020

В SQL (допустим, стандарт ANSI SQL), возможно ли извлечь подстроку из одного столбца на основе другой таблицы и поместить эту подстроку в другой столбец?

Пример, из следующие таблицы:

VISITS
name       summary
---------------------------------------------
john       visit to London
jack       hotel in Paris with park visits
joe        b&b in Paris with ice cream
james      holidays in London and museums
jason      visit in Milan and fashion tour

LOCATIONS
id    name
-------------
1     Paris
2     London
3     Milan
4     Berlin

Идея состоит в том, чтобы извлечь местоположение из столбца summary и вывести следующее:

VISITS
name       summary                              location
---------------------------------------------
john       visit to London                      London
jack       hotel in Paris with park visits      Paris
joe        b&b in Paris with ice cream          Paris
james      holidays in London and museums       London
jason      visit in Milan and fashion tour      Milan

1 Ответ

1 голос
/ 27 марта 2020

Вы можете сделать сопоставление с образцом:

select v.*, l.name
from visits v
left join locations l on v.summary like concat('%', l.name, '%')

Как прокомментировал jarlh ANSI sql имеет оператор || для конкатенации строк, поэтому, в зависимости от вашей базы данных:

select v.*, l.name
from visits v
left join locations l on v.summary like '%' || l.name || '%'
...