CAML Запрос строки существ с любым числом - PullRequest
0 голосов
/ 03 июня 2011

Есть ли простой способ вернуть все строки, которые начинаются с числа в запросе CAML?

1 Ответ

4 голосов
/ 03 июня 2011

Это разовый запрос или вы хотите как-то его реализовать?

Если раз, то вы можете использовать этот запрос:

  <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 () для возврата данных и фильтрации ваших записей там.

Если список будет содержать много элементов, этот способ не рекомендуется, так как он включает получение всех элементовиз списка.

Если, однако, вы хотите реализовать это в какой-то функции, возможно, было бы лучше иметь другой столбец, указывающий тип записи.

Если вы используете этозапрос в функции, создайте индекс для этого столбца.

...