MS Access - 不喜欢<table of =“”keywords =“”> </table>

时间:2014-05-22 15:46:48

标签: sql ms-access filter

我在MS Access中有一个客户列表,想要过滤它们。 有几个关键字不得包含在客户的名称字段中。

因此,如果客户的“姓名”包含“有限公司”等字样或“公司”不得被选中。

禁止的关键字列在另一个名为“关键字”的访问表中。

是否可以告诉查询选择所有客户,除非那些名称中包含关键字表中关键字的客户?

非常感谢你。 : - )

2 个答案:

答案 0 :(得分:1)

您可以使用not exists子句执行此操作。以下显示了使用like

的逻辑
select c.*
from customers as c
where not exists (select 1
                  from keywords as k
                  where c.name like "*"&k.word&"*"
                 );

说实话,我并非100%确定Access允许like中的模式进行字符串连接(它有许多来自其他数据库的奇怪变体)。如果这不起作用,那么基本的想法就会出现。

如果like不起作用,您可以使用instr()

select c.*
from customers as c
where not exists (select 1
                  from keywords as k
                  where instr(c.name, k.word) > 0
                 );

答案 1 :(得分:0)

您可以使用instr搜索公司名称中的密钥。这是示例查询。

SELECT myCompany.CompanyID, myCompany.CompanyName
FROM myCompany, tblkey
where INSTR(myCompany.CompanyName , tblKey.key_name)=0;