Как сопоставить эти данные в базе данных Oracle - PullRequest
0 голосов
/ 24 января 2019

У меня есть две таблицы table1 и table2 со столбцом описания страны Country_name в базе данных Oracle

Таблица1 имеет country_name данные, такие как

INDIA
AUSTRALIA
JAPAN
USA

Таблица2 имеет country_name данных, таких как

India
Australia
Japan
USA (United State of America)

Теперь я хочу объединить данные country_name в обеих таблицах, и они должны вернуть все 4 строки в моем результате.

Я пробовал ниже запрос, но он возвращает только 3 строки, не соответствует 4-й записи.

select distinct A.COUNTRY_NAME
from TABLE1 A,
     TABLE2 B 
where upper(trim(A.COUNTRY_NAME)) = upper(trim(B.COUNTRY_NAME));

Пожалуйста, предоставьте ваши предложения. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Этот тест для заглавной версии имен в таблице 2 начинается с того же имени, что и в таблице 1. Я не использую DISTINCT, поскольку невозможно определить, какой из них правильный, если в таблице 2 будут найдены повторяющиеся записи

SELECT a.country_name
FROM table1 a
JOIN table2 b ON a.country_name LIKE UPPER(b.country_name) || '%'
0 голосов
/ 24 января 2019

вы можете использовать как оператор

select distinct A.COUNTRY_NAME from TABLE1 A, TABLE2 B 
where  upper(trim(B.COUNTRY_NAME)) LIKE '%' || upper(trim(A.COUNTRY_NAME))  || '%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...