我的下面的 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%'
)
;
我认为你需要使用 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%';