我有一个客户名单,在MS Access,并希望过滤他们。有几个关键字不能包含在客户的名称字段中。
因此,如果客户的“名称”包含“有限公司”字样。或“公司”不得被选中。
禁止的关键字列在另一个名为“关键字”的访问表中。
是否有可能告诉查询选择所有客户,但谁的名字包含关键字-表的关键字?
非常感谢。:-)
发布于 2014-05-22 15:57:53
您可以使用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
);发布于 2014-05-22 16:05:38
您可以使用instr搜索公司名称中的密钥。下面是示例查询。
SELECT myCompany.CompanyID, myCompany.CompanyName
FROM myCompany, tblkey
where INSTR(myCompany.CompanyName , tblKey.key_name)=0;https://stackoverflow.com/questions/23811554
复制相似问题