CAML查询任意数字的字符串

时间:2011-06-03 09:42:32

标签: sharepoint sharepoint-2010 sharepoint-2007 caml

是否有一种简单的方法可以返回以CAML查询中的数字开头的所有字符串?

1 个答案:

答案 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包含许多项目,建议不要这样做,因为它涉及从列表中获取所有项目。

但是,如果你想在某些特性中实现这一点,那么最好还有一个指示记录类型的列。

如果您在功能中使用此查询,请为该列创建索引。