如何在查询中使用'like [table1]。[column1]&“ *”'

时间:2019-01-17 20:20:31

标签: sql ms-access

我正在尝试建立一个查询,该查询会将通配符附加到从联接表中提取的值的末尾。我的主表是在特定访问中分配的所有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

1 个答案:

答案 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 & "*"