Выбор непустых ячеек из списка SharePoint с CAML

Недавно понадобилось написать CAML-запрос для выбора элементов списка с непустыми значениями столбца (ячейки). Нужно было выбрать все записи, в которых столбец OS имел значение "Windows", а столбец UserName был не пустым. Не будучи асом в CAML'е, сперва решил попробовать использование конструкции  <Neq> и <Value Type='Text'></Value>, т.е. некий аналог  var != "". Но результат оказался не очень.

<Where>
        <And>
            <Eq>
                    <FieldRef Name="OS " />
                    <Value Type='Text'>Windows</Value>
            </Eq>
            <Neq>
                    <FieldRef Name="UserName />
                    <Value Type='Text'></Value>
            </Neq>
        </And>
</Where>

 

В итоге, заглянув в документацию CAML,  обнаружил конструкцию <IsNotNull>. Ее использование оказалось правильным решением:

<Where>
        <And>
            <Eq>
                    <FieldRef Name="OS " />
                    <Value Type='Text'>Windows</Value>
            </Eq>
            <IsNotNull>
                    <FieldRef Name="UserName" />
            </IsNotNull>
        </And>
</Where>

 

Этот запрос возвращает элементы списка, в которых OS равно "Windows", а UserName не пусто.

 

Если же вам понадобится выбрать ячейки с пустым значением UserName, то на помощь конструкция  <IsNull>.

<Where>
        <And>
            <Eq>
                    <FieldRef Name="OS " />
                    <Value Type='Text'>Windows</Value>
            </Eq>
            <IsNull>
                    <FieldRef Name="UserName" />
            </IsNull>
        </And>
</Where>

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика