这是一个简单的问题,但我的困境是我将1000多个医疗诊断代码与整个ICD9表进行比较。
我有一个截断代码列表,可以与整个数据库进行比较。例如,我截断了代码010,但整个ICD9数据库表有010.01,010.02,...... 010.96,应该返回010 *内的所有值。
我正在使用的截断代码列表是变量,包含800-1,300 +通配符代码,Access在查询中有40个变量限制。
我找到了this help topic,但不明白如何将其转换为我的需求。下面是我目前设置的SQL查询的SQL,但已将其缩短为仅搜索的几个值。如果有办法将通配符代码放入其自己的表中并与ICD9表联合,那就太好了......但我的专业知识无法知道如何使用其他表来搜索通配符。 / p>
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*"));
答案 0 :(得分: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])