簡體   English   中英

CAML“不在”查詢

[英]CAML “NOT IN” query

有沒有辦法在SharePoint 2010中執行“NOT IN”行為? 我可以像這樣輕松實現IN行為:

<Where>
   <In>
      <FieldRef Name="ID"/>
      <Values>
         <Value Type="Counter">1</Value>
         <Value Type="Counter">2</Value>
         <Value Type="Counter">3</Value>
         <Value Type="Counter">4</Value>
         <Value Type="Counter">5</Value>
      </Values>
   </In>
</Where>

但有沒有辦法選擇所有值不在值列舉?

這是USE CASE:我有一個帶有AllowMultipleValues = true的Lookup字段,我需要從LookupList獲取所有項目,這些項目不包含在Lookup字段中

提前致謝!

從SharePoint 2010開始,可能有適合您的NotIncludes元素。 來自MSDN:

如果指定的字段是允許多個值的查找字段,則指定從FieldRef元素指定的字段的列表項中排除Value元素。

模板:

<NotIncludes>
    <FieldRef Name="Field_Name" />
    <Value Type="Field_Type" />
    <XML />
</NotIncludes>

要獲得“In”的相反行為,您必須進行嵌套的“Neq”查詢。 如果您正在處理具有多個值的查找字段,則“NotIncludes”可以替換為“Neq”或與“Neq”組合使用。

<Query>
    <Where>
        <And>
            <And>
                <Neq>
                    <FieldRef Name="ID" /><Value Type="Counter">5</Value>
                </Neq>
                <Neq>
                    <FieldRef Name="ID" /><Value Type="Counter">13</Value>
                </Neq>
            </And>
            <And>
                <NotIncludes>
                    <FieldRef Name="children" /><Value Type="Lookup">20</Value>
                </NotIncludes>
                <NotIncludes>
                    <FieldRef Name="children" /><Value Type="Lookup">32</Value>
                </NotIncludes>
            </And>
        </And>
    </Where>
</Query>

如果您想要更多變量,則需要進行更多嵌套。 玩得開心。

我認為不等於選項將是構建此CAML查詢的最佳方式

也許這個(沒試過這個,所以請耐心等待)

<Query>
   <Where>
     <And>
       <Neq>
          <FieldRef Name="ID" /><Value Type="Counter">1</Value>
       </Neq>
       <Neq>
          <FieldRef Name="ID" /><Value Type="Counter">2</Value>
       </Neq>
       <Neq>
          <FieldRef Name="ID" /><Value Type="Counter">3</Value>
       </Neq>
     </And>
   </Where>
</Query>

您應該查看可用的比較運算符

  • 包含
  • 開始於
  • 等式,等於
  • Neq,不等於
  • Gt,大於
  • 不,小於
  • Geq,大於或等於
  • Leq,小於或等於
  • DateRangesOverlap,將周期性事件中的日期與指定值進行比較
  • IsNotNull
  • 一片空白

我最接近的是使用<NotIncludes></NotIncludes> ,但由於某種原因,它與<In></In> <In>我可以使用<Values> 使用<NotIncludes>看起來您只能指定一個值。 其余部分必須<Or>編入,類似於<Neq>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM