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

CAML多OR条件查询文档审批状态返回无关结果如何解决?

问题根因

你现有查询返回无关结果有两个核心错误:

  1. 首个条件的字段名拼写错误,写为ppprovalType(多了1个p),和实际字段名ApprovalType不匹配,导致该条件永远不成立
  2. CAML语法对操作符标签大小写敏感,你写的小写<eq>会被系统忽略,导致逻辑判断异常

正确查询语句

CAML中单个AND/OR节点确实只能包含两个条件,三个OR条件嵌套两层OR节点即可。以下是筛选审批状态为1、2、3的正确写法,你可以根据ApprovalType字段的实际类型调整Value的Type属性(数字类型填Number,选项类型填Choice):

<Query>
  <Where>
    <Or>
      <Or>
        <Eq>
          <FieldRef Name="ApprovalType" />
          <Value Type="Number">1</Value>
        </Eq>
        <Eq>
          <FieldRef Name="ApprovalType" />
          <Value Type="Number">2</Value>
        </Eq>
      </Or>
      <Eq>
        <FieldRef Name="ApprovalType" />
        <Value Type="Number">3</Value>
      </Eq>
    </Or>
  </Where>
</Query>

如果你要适配原来的文本型审批状态值(Approve、Approve w/contingencies、Change Needed),修改Value节点的内容和Type为Choice即可:

<Query>
  <Where>
    <Or>
      <Or>
        <Eq>
          <FieldRef Name="ApprovalType" />
          <Value Type="Choice">Approve</Value>
        </Eq>
        <Eq>
          <FieldRef Name="ApprovalType" />
          <Value Type="Choice">Approve w/contingencies</Value>
        </Eq>
      </Or>
      <Eq>
        <FieldRef Name="ApprovalType" />
        <Value Type="Choice">Change Needed</Value>
      </Eq>
    </Or>
  </Where>
</Query>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:06:07