如何检查一个单元格是否包含MS Access中另一个单元格的值?

时间:2019-04-30 12:00:25

标签: sql ms-access

我在2个不同的表中有2列,均包含相同的参考号,但格式不同。

示例:

table1.reference1 | table2.reference2
58575218 | 00000000000058575218

我需要在这些列上显示具有不同值的记录,但是在上面的示例中,它只是带有一串零的相同值,因此,如果reference2包含reference1,则应将其视为相同值。

我试图将'%'与table1.reference1连接起来,以忽略所有这些零,但这似乎不起作用。

SELECT 
    * 
FROM
    table1 
LEFT JOIN 
    table2 
ON 
    table1.key1 = table2.key2
WHERE
    ('%' & table1.[reference1])<>table2.[reference2]);

对于上面的示例,它不应显示任何记录,但实际上会显示。

2 个答案:

答案 0 :(得分:0)

MS Access中的正确语法为:

FROM table1 INNER JOIN 
     table2 
     ON table1.key1 = table2.key2
WHERE table2.[reference2] NOT LIKE "*" & table1.[reference1]

或者:

WHERE INSTR(table2.[reference2], table1.[reference1]) = 0 

答案 1 :(得分:0)

Access使用*代替%来表示多个字符:

where table2.[reference2] not like "*" & table1.[reference1]

在此处找到更多信息:Like Operator