Выбор непустых ячеек из списка 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>

 




MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика
Количество элементов в списке SharePoint с помощью PowerShell

Недавно понадобилось узнать, сколько элементов содержит список SharePoint. Почему-то SharePoint пишет о количестве элементов только тогда, когда их очень много,...

Закрыть