Как использовать 'like [table1]. [Column1] & "*"' в запросе - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь настроить запрос, который добавит подстановочный знак в конец значения, извлеченного из объединенной таблицы.Моя первичная таблица - это список всех кодов ICD, назначенных при конкретном посещении, а моя вторичная таблица - это список кодов ICD, которые я хочу найти в своей первичной таблице.

Однако коды в дополнительной таблице не всегда полны.Например, код ICD F84.1 в моей первичной таблице может быть указан как F84 (что означает, что F84.0-F84.9 применимы) во вторичной таблице, которую я пробовал:

SELECT a.DX_icd, a.Visit_date
FROM Diagnosis AS a INNER JOIN Criteria_ICD.ICD AS b on a.DX_ICD=b.ICD
WHERE a.DX_icd like "*" & b.ICD & "*"

Однако это вернулоНет результатов.Я пробовал каждую комбинацию "vs" и * vs%.

Этот запрос будет выполняться правильно:

Parameters code text(20);
SELECT *
FROM Diagnosis AS a
WHERE a.ICD like "*" & code & "*"

Но это не практично, поскольку мне нужно получить несколько кодов. Всеполя, с которыми я взаимодействую, являются коротким текстом и проиндексированы.

РЕДАКТИРУЕТ для ясности:

Основная таблица:
ID | Дата | ICD
1 | 01.01.19 |F84.2
2 | 1/2/19 | F83.9
3 | 1/2/19 | F84.0
4 | 1/3/19 | G93.3

Вторичная таблица:
ICD
F84
Z00
G93

Желаемый вывод:
ID | Дата | ICD
1 | 1 /1/19 | F84.2
3 | 1/2/19 | F84.0
4 | 1/3/19 | G93.3

1 Ответ

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

Если я понимаю, чего вы пытаетесь достичь.

   SELECT a.DX_icd, a.Visit_date
    FROM Diagnosis AS a INNER JOIN Criteria_ICD.ICD AS b on a.DX_ICD=b.ICD
    WHERE a.DX_icd like "*" & b.ICD & "*"

Попробуйте это

   SELECT a.DX_icd, a.Visit_date
    FROM Diagnosis AS a 
    INNER JOIN Criteria_ICD.ICD AS b on a.DX_ICD  LIKE "*" &b.ICD & "*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...