在SharePoint 2010中,有没有办法做一些类似“不在”的行为?我可以很容易地实现这样的行为:
<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>但是有没有一种方法可以选择所有不在值枚举中的值呢?
这是一个用例:我有一个AllowMultipleValues = true的Lookup字段,我需要从LookupList获取所有没有包含在Lookup字段中的项
提前感谢!
发布于 2014-01-02 22:32:46
从SharePoint 2010开始,NotIncludes元素可能适用于您。来自MSDN:
如果指定的字段是允许多个值的查阅字段,则指定从FieldRef元素指定的字段的列表项中排除Value元素。
模板:
<NotIncludes>
<FieldRef Name="Field_Name" />
<Value Type="Field_Type" />
<XML />
</NotIncludes>发布于 2015-05-01 00:44:29
为了得到'In‘的相反行为,你必须进行一个嵌套的'Neq’查询。如果您正在处理具有multiple values的查阅字段,则'NotIncludes‘可以替换或与'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>如果你想要更多的变量,那么就需要做更多的嵌套。玩得开心。
发布于 2012-07-21 04:02:52
我认为不相等选项将是构建此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>您应该了解一下可用的比较运算符
的循环事件中的比较日期
https://stackoverflow.com/questions/11580391
复制相似问题