You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中NOT LIKE与OR联用逻辑异常问题求助

问题排查:NOT LIKE与OR联用导致过滤失效

你的问题出在逻辑运算符的误用:用OR连接多个NOT LIKE条件,根本达不到你想要的“过滤掉包含任意指定关键词的记录”的效果。

拿你提到的automation值举例:它确实匹配%auto%和automation%,所以对应的NOT LIKE条件是假,但它不包含test,所以ld.lead_name NOT LIKE '%test%'是真——OR逻辑里只要有一个条件为真,整个括号里的表达式就为真,这条记录就会被保留下来。

你真正需要的逻辑是:lead_name不匹配所有这些模式,也就是同时满足所有NOT LIKE条件,所以必须把OR替换成AND。

修正后的SQL语句:

SELECT
    ld.status,
    ld.lead_name
FROM
    DATAWAREHOUSE.SFDC_STAGING.SFDC_LEAD AS ld
WHERE
    ld.status <> 'Open'
    AND (
        ld.lead_name NOT LIKE '%test%'
        AND ld.lead_name NOT LIKE '%t3st%'
        AND ld.lead_name NOT LIKE '%auto%'
        AND ld.lead_name NOT LIKE '%autoXmation%'
        AND ld.lead_name NOT LIKE 'automation%'
    );

另外,你也可以用NOT (LIKE ... OR LIKE ...)的写法,逻辑等价且更直观:

SELECT
    ld.status,
    ld.lead_name
FROM
    DATAWAREHOUSE.SFDC_STAGING.SFDC_LEAD AS ld
WHERE
    ld.status <> 'Open'
    AND NOT (
        ld.lead_name LIKE '%test%'
        OR ld.lead_name LIKE '%t3st%'
        OR ld.lead_name LIKE '%auto%'
        OR ld.lead_name LIKE '%autoXmation%'
        OR ld.lead_name LIKE 'automation%'
    );

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:12:04