同时使用 NOT LIKE 和 OR 语句会产生 FALSE 输出

问题描述 投票:0回答:1

我的下面的 SQL 语句有问题。 NOT LIKE 和 OR 语句生成 FALSE 语句,因为它在不应该生成输出的情况下生成输出,因为我使用的是 NOT LIKE。当我将该语句作为独立的语句(没有 OR 条件)时,它会按预期工作。

例如,我仍然在 ld.lead_name 列中看到“自动化”。

任何帮助将不胜感激!我不明白为什么这不起作用......

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%'
        OR ld.lead_name NOT LIKE '%t3st%'
        OR ld.lead_name NOT LIKE '%auto%'
        OR ld.lead_name NOT LIKE '%autoXmation%'
        OR ld.lead_name NOT LIKE 'automation%'
    )
    ;
sql snowflake-cloud-data-platform
1个回答
0
投票

我认为你需要使用 AND 而不是 OR:

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%';
© www.soinside.com 2019 - 2024. All rights reserved.