T- SQL: объединение таблиц с помощью Like - PullRequest
0 голосов
/ 05 августа 2020

У меня есть таблица [TableA], которая выглядит так:

ID     Name
---------------------------------------------
1      KENALOG 40 MG/ML INJECTION SUSPENSION
2      KENALOG 10 MG/ML INJECTION SUSPENSION
3      KENALOG 40 MG/ML INJECTION SUSPENSION
4      KENALOG 40 MG/ML INJECTION SUSPENSION

У меня есть вторая таблица [TableB], которая содержит эти данные:

Name                      Code
-------------------------------
Kenalog 40 MG/ML Inj      J3340
Kenalog 10 MG/ML Inj      J3310

Я хочу 4 строк в таблице A, чтобы иметь соответствующий код из таблицы B, например:

ID     Name                                     Code
------------------------------------------------------
1      KENALOG 40 MG/ML INJECTION SUSPENSION    J3340
2      KENALOG 10 MG/ML INJECTION SUSPENSION    J3310
3      KENALOG 40 MG/ML INJECTION SUSPENSION    J3340
4      KENALOG 40 MG/ML INJECTION SUSPENSION    J3340

Когда я пробую это SQL:

Select 
    a.ID, a.Name, b.Code
From
    TableA a
Left Join 
    TableB b On a.Name Like '%' + Upper(b.Name) + '%'

, я получаю:

ID     Name                                     Code
------------------------------------------------------
1      KENALOG 40 MG/ML INJECTION SUSPENSION    NULL
2      KENALOG 10 MG/ML INJECTION SUSPENSION    J3310
3      KENALOG 10 MG/ML INJECTION SUSPENSION    NULL
4      KENALOG 10 MG/ML INJECTION SUSPENSION    NULL

Я также пробовал левое внешнее объединение [тот же результат] и внутреннее объединение [возвращает только одну строку с Kenalog 10 MG ...] - и я попытался использовать CharIndex и SubString в операторе соединения.

Буду признателен за любую помощь, которую смогу получить.

...