0

这本身就是一个简单的问题,但我的困境是我将 1,000 多个医疗诊断代码与整个 ICD9 表进行比较。

我有一个截断代码列表来与整个数据库进行比较。例如,我截断了代码 010,但整个 ICD9 数据库表有 010.01、010.02、....010.96,并且应该返回 010* 内的所有值。

我正在使用的截断代码列表是可变的,包含 800-1,300 多个通配符代码,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*"));
4

1 回答 1

0

这应该这样做:

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])
于 2017-01-08T09:18:38.230 回答