Ms access Access将通配符值与表进行比较

Ms access Access将通配符值与表进行比较,ms-access,compare,wildcard,ms-access-2013,icd,Ms Access,Compare,Wildcard,Ms Access 2013,Icd,这本身就是一个简单的问题,但我的困境是,我正在将1000多个医疗诊断代码与整个ICD9表进行比较 我有一个截短的代码列表,可以与整个数据库进行比较。例如,我截断了代码010,但整个ICD9数据库表有010.01、010.02、…010.96,并且应该返回010*内的所有值 我使用的截断代码列表是可变的,包含800-1300+个通配符代码,并且Access在查询中有40个变量的限制 我找到了,但不知道如何将它转换为我的需要。下面是我当前设置的查询SQL,但已将其缩短为只需搜索几个值。如果有一种方法

这本身就是一个简单的问题,但我的困境是,我正在将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*"));
这应该做到:

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])

谢谢古斯塔夫!我的目标是让任何在我之后进来的人都能理解我所做的事情。虽然我更喜欢你的方法,而且确实有效!在查找->替换小数点->空白后,我将其解释为:选择[Code List]。[Diagnosis Code],[ICD9-10 Code Match]。从[ICD9-10 Code Match]上的[ICD9-10 Code Match]内部联接[Code List]进行匹配。类似于[Code List]。[Diagnosis Code]的匹配;对于一个不熟悉InStr公式的人来说,它似乎工作得既恰当又容易。我讨厌我有一个脑力激荡器的时候,而且解决方法很简单!谢谢你让我越过了路障。