我正在尝试建立一个查询,该查询会将通配符附加到从联接表中提取的值的末尾。我的主表是在特定访问中分配的所有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 | 19年1月1日| F84.2
2 | 19/1/2 / F83.9
3 | 19/1/2 / F84.0
4 | 1/3/19 | G93.3
辅助表格:
ICD
F84
Z00
G93
所需的输出:
ID |日期| ICD
1 | 19年1月1日| F84.2
3 | 19/1/2 / F84.0
4 | 1/3/19 | G93.3
答案 0 :(得分:0)
如果我了解您要实现的目标。
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 & "*"