我需要获取docID为555,请求类型包含修改,状态不完整或状态未被拒绝的所有记录。我尝试跟随,但它返回的数据在状态列中已"拒绝"。
使用多个运算符的 SharePoint 列表 CAML 查询("少数和"或"状态"字段(
<Query>
<Where>
<And>
<Eq>
<FieldRef Name='DocID' />
<Value Type="Text">{ItemProperty:DocID}</Value>
</Eq>
<And>
<Contains>
<FieldRef Name="RequestType" />
<Value Type="Choice">Modify</Value>
</Contains>
<Or>
<Neq>
<FieldRef Name="Change_x0020_Approved" />
<Value Type="Text">Complete</Value>
</Neq>
<Neq>
<FieldRef Name="Change_x0020_Approved" />
<Value Type="Text">Rejected</Value>
</Neq>
</Or>
</And>
</And>
</Where>
</Query>
看起来以下 CAML 可以满足我的需要。有趣的是我没有使用 OR 运算符,但它有效。
<Where>
<And>
<And>
<And>
<And>
<Contains>
<FieldRef Name='RequestType' />
<Value Type='Choice'>Modify</Value>
</Contains>
<Eq>
<FieldRef Name='DocID' />
<Value Type='Text'>555</Value>
</Eq>
</And>
<IsNotNull>
<FieldRef Name='Change_x0020_Approved' />
</IsNotNull>
</And>
<Neq>
<FieldRef Name='Change_x0020_Approved' />
<Value Type='Text'>Complete</Value>
</Neq>
</And>
<Neq>
<FieldRef Name='Change_x0020_Approved' />
<Value Type='Text'>Rejected</Value>
</Neq>
</And>
</Where>
条件"A 不是 3
或 A 不是 4"对于 A 的所有值都成立,包括值 3 和 4。我怀疑你的意思是"A 不是 3,A 不是 4"。