CAML多OR条件查询文档审批状态返回无关结果如何解决?
问题根因
你现有查询返回无关结果有两个核心错误:
- 首个条件的字段名拼写错误,写为
ppprovalType(多了1个p),和实际字段名ApprovalType不匹配,导致该条件永远不成立 - 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
相关产品推荐
相关产品推荐

