Доступ к сопоставлению значений групповых символов с таблицей
Это простой вопрос сам по себе, но моя дилемма в том, что я сравниваю более 1000 медицинских диагностических кодов с общей таблицей ICD9.
У меня есть список усеченных кодов для сравнения со всей базой данных. Например, у меня был усеченный код 010, но общая таблица базы данных ICD9 имеет 010.01, 010.02, ....010.96 и должна возвращать все значения в пределах 010*.
Усеченные списки кодов, из которых я работаю, являются переменными и содержат от 800 до 1300+ подстановочных кодов, а Access имеет 40 переменных в запросах.
Я нашел этот раздел справки, но не понял, как преобразовать его в мои потребности. Ниже приведен SQL-запрос к моему запросу, который я настроил в настоящее время, но сократил его до нескольких значений для поиска. Если есть способ поместить коды подстановочных знаков в свою собственную таблицу и соединить их с таблицей ICD9, это было бы замечательно... но я не знаю, как использовать другую таблицу для поиска подстановочных знаков.
SELECT [ICD9-10 Code Match].[ICD9 Code]
FROM [ICD9-10 Code Match]
WHERE ((([ICD9-10 Code Match].[ICD9 Code]) Like "010*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "011*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "012*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "013*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "014*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "015*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "016*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "017*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "018*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "042*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "0100*"));
1 ответ
Это должно сделать:
SELECT [ICD9-10 Code Match].[ICD9 Code]
FROM [ICD9-10 Code Match]
WHERE [ICD9-10 Code Match].[ICD9 Code] IN
(Select Left([Code], InStr([Code], ".") - 1) From [ICD9])