使用多个运算符的XML查询(很少Ands和/或用于状态字段)

时间:2018-01-31 16:36:21

标签: xml caml

我需要获取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>

2 个答案:

答案 0 :(得分:0)

看起来以下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>

答案 1 :(得分:0)

条件“A不是3或A不是4”对于A的所有值都是正确的,包括值3和4.我怀疑你的意思是“A不是3而A不是4”。