是否有一种简单的方法可以返回以CAML查询中的数字开头的所有字符串?
答案 0 :(得分:4)
这是一次性查询还是要以某种方式实现?
如果有一次,那么您可以使用此查询:
<Where>
<Or>
<Or>
<Or>
<Or>
<Or>
<Or>
<Or>
<Or>
<Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>0</Value>
</BeginsWith>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>1</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>2</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>3</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>4</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>5</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>6</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>7</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>8</Value>
</BeginsWith>
</Or>
<BeginsWith>
<FieldRef Name='Title' />
<Value Type='Text'>9</Value>
</BeginsWith>
</Or>
</Where>
另一种方法是获取所有项目,使用SPListItemCollection。GetDataTable()方法返回数据表,并在那里过滤您的记录。
如果List包含许多项目,建议不要这样做,因为它涉及从列表中获取所有项目。
但是,如果你想在某些特性中实现这一点,那么最好还有一个指示记录类型的列。
如果您在功能中使用此查询,请为该列创建索引。