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

SQL中OR/AND子句报错,如何修正专利检索SQL语句?

修正SQL语句的语法与逻辑错误

错误原因

  • 语法错误:WHERE子句中类似or '%semiconductor%'、or '%bus'%'的写法不符合SQL规范,每个条件必须明确指定列名、比较运算符(like/not like)和匹配值,单独字符串无法作为布尔条件;另外'%bus'%'多了一个单引号,属于语法拼写错误。
  • 逻辑错误:原语句的逻辑不符合需求,你需要的是标题和摘要都不含所有禁止关键词,但原语句用or分割禁止词条件,会导致只要满足其中一个禁止词不匹配就通过,而非全部不匹配;同时逻辑运算符优先级(AND高于OR)会导致条件分组混乱,无法正确过滤数据。

修正后的SQL语句

SELECT DISTINCT 
  tls201_appln.docdb_family_id
, tls201_appln.appln_id
, [appln_auth]
, [appln_nr]
, [appln_kind]
, [appln_filing_date]
, [receiving_office]
, [earliest_publn_date]
, [granted]
, [nb_citing_docdb_fam]
, [nb_applicants]
, [nb_inventors]
, tls202_appln_title.appln_title
FROM tls201_appln
INNER JOIN tls202_appln_title ON tls201_appln.appln_id = tls202_appln_title.appln_id 
INNER JOIN tls203_appln_abstr ON tls201_appln.appln_id = tls203_appln_abstr.appln_id 
WHERE 
  -- 标题或摘要包含关键词software
  (appln_title LIKE '%software%' OR appln_abstract LIKE '%software%')
  -- 标题不含所有禁止关键词
  AND appln_title NOT LIKE '%chip%'
  AND appln_title NOT LIKE '%semiconductor%'
  AND appln_title NOT LIKE '%bus%'
  AND appln_title NOT LIKE '%circuit%'
  AND appln_title NOT LIKE '%circuity%'
  AND appln_title NOT LIKE '%circuitry%'
  -- 摘要不含所有禁止关键词
  AND appln_abstract NOT LIKE '%chip%'
  AND appln_abstract NOT LIKE '%semiconductor%'
  AND appln_abstract NOT LIKE '%bus%'
  AND appln_abstract NOT LIKE '%circuit%'
  AND appln_abstract NOT LIKE '%circuity%'
  AND appln_abstract NOT LIKE '%circuitry%'
  -- 申请年份限定在2003-2008之间
  AND appln_filing_year BETWEEN 2003 AND 2008

修正说明

  1. 每个禁止词条件都明确写出列名 NOT LIKE '匹配值',确保语法合规;
  2. 用AND连接同一字段的多个禁止词条件,保证该字段同时不含所有禁止关键词;
  3. 用括号明确分组(appln_title LIKE '%software%' OR appln_abstract LIKE '%software%'),避免逻辑优先级混乱;
  4. 修正了'%bus'%'的单引号拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:55:16