首页 > 解决方案 > 排除文本列表,例如

问题描述

df


business_code business_category
A              Café / Restaurant
B              Car Repair Shop
C              Cleaning Services
D              Fast Food Restaurant

如果有与所写文本相似的文本,我想排除。

select business_code, business_category
from schema.df
where vmdm.mcc_level not like('%Caf%', '%epair%', '%leaning%')

上面的代码不起作用。

预期输出:df_output

D              Fast Food Restaurant

另外,特别是对于咖啡馆/餐厅,我应该如何最好地排除它们?如果我写 '%af%,它可能会排除仅包含这 2 个字母的其他业务类别。如果我写 '%afé',则不排除 'Cafe'。

标签: sqlpostgresql

解决方案


您可以使用数组和ALL

select business_code, business_category
from schema.df
where vmdm.mcc_level not like ALL(array['%Caf%', '%epair%', '%leaning%'])

如果您正在寻找包含,您将使用ANY

...
where vmdm.mcc_level like ANY(array['%Caf%', '%epair%', '%leaning%'])

关于重音,您可以查看非重音扩展名,或者您可以同时过滤cafecafé


推荐阅读