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

SQL多条件LIKE排除查询报错SQL0104,求解决方案

解决SQL0104错误并实现需求的正确写法

嘿,我来帮你搞定这个SQL错误!你遇到的SQL0104报错,主要是两个问题导致的:一是语法用错了,二是逻辑运算符的优先级没处理好,刚好对应你要实现的查询需求。

先说说错误根源

  • 你用了<>和LIKE组合,这在SQL里是不合法的!要表示“不匹配某类模式”,得用NOT LIKE,而不是<>搭配LIKE
  • 原查询里的OR会搞乱逻辑:因为SQL中AND的优先级比OR高,你的原语句会被解析成(juultp = 1 AND jutx40 <> LIKE 'M3%') OR jutx40 <> LIKE 'MeC%',这完全不是你想要的“juultp=1 同时 不以M3/MeC开头”的逻辑

给你两种正确的写法

写法一:用多个AND串联条件(最直观)

直接把每个“不以XX开头”的条件用NOT LIKE写出来,再和juultp=1用AND关联:

SELECT * 
FROM m3fdbprd.cmnusr 
WHERE juultp = 1 
  AND jutx40 NOT LIKE 'M3%' 
  AND jutx40 NOT LIKE 'MeC%'
ORDER BY jutx40;

写法二:用NOT包裹OR条件(逻辑上等价)

如果觉得多个NOT LIKE有点啰嗦,也可以把“以M3开头 或者 以MeC开头”的条件用OR组合,再整体用NOT否定,这样逻辑更紧凑:

SELECT * 
FROM m3fdbprd.cmnusr 
WHERE juultp = 1 
  AND NOT (jutx40 LIKE 'M3%' OR jutx40 LIKE 'MeC%')
ORDER BY jutx40;

这两种写法都能正确筛选出你需要的数据,而且不会再触发SQL0104的语法错误啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:12:19