SharePoint CAML查询-产生不同结果的Where条件的顺序
我在SharePoint Online中遇到了包含数千条记录的大型文档列表问题。我得到了一些视图的常规列表视图超过5000项错误,因此我试图通过日期字段过滤这些视图。我看到一些奇怪的结果,这些结果根据我的where条件的顺序而变化 当我按“事件日期”和“部门”字段排序时,查询成功SharePoint CAML查询-产生不同结果的Where条件的顺序,sharepoint,office365,caml,Sharepoint,Office365,Caml,我在SharePoint Online中遇到了包含数千条记录的大型文档列表问题。我得到了一些视图的常规列表视图超过5000项错误,因此我试图通过日期字段过滤这些视图。我看到一些奇怪的结果,这些结果根据我的where条件的顺序而变化 当我按“事件日期”和“部门”字段排序时,查询成功 <View Scope=\"RecursiveAll\"> <Query> <OrderBy Override='TRUE'><FieldRef Name='ID' /
<View Scope=\"RecursiveAll\">
<Query>
<OrderBy Override='TRUE'><FieldRef Name='ID' /></OrderBy>
<Where>
<And>
<Geq><FieldRef Name='Event_x0020_Date' /><Value Type='DateTime'>2019-01-01T00:00:00Z</Value></Geq>
<Eq><FieldRef Name='Division' /><Value Type='Text'>{division}</Value></Eq>
</And>
</Where>
</Query>
2019-01-01T00:00:00Z
{除法}
当我执行完全相同的查询,但条件相反时,我得到一个错误,即视图超过了列表视图阈值
<View Scope=\"RecursiveAll\">
<Query>
<OrderBy Override='TRUE'><FieldRef Name='ID' /></OrderBy>
<Where>
<And>
<Eq><FieldRef Name='Division' /><Value Type='Text'>{division}</Value></Eq>
<Geq><FieldRef Name='Event_x0020_Date' /><Value Type='DateTime'>2019-01-01T00:00:00Z</Value></Geq>
</And>
</Where>
</Query>
{除法}
2019-01-01T00:00:00Z
在我看来,SharePoint确定第一个条件已经超过5000项,而不考虑第二个条件。我遗漏了什么吗?在SharePoint查询中,如果第一个过滤器返回的项目超过5000个,则您将达到5000个项目的阈值。在应用AND的第二个条件之前,将单独评估每个条件 如果有超过5000个项目具有相同的分区,则不能将其作为第一个条件。但是,如果事件日期应用于少于5000个项目,则可以将其用作第一个条件,然后使用and添加分割条件 所以,是的,条件的顺序确实很重要