Логические выражения (XQuery)

Язык XQuery поддерживает логические операторы and и or.

expression1 and expression2
expression1 or expression2

Результатом тестовых выражений expression1, expression2 в SQL Server может стать пустая последовательность, последовательность одного или более узлов или одиночное логическое значение. Основанное на результате действительное логическое значение определяется следующим способом:

  • если результатом тестовых выражений является пустая последовательность, результатом выражения является значение False;

  • если результатом тестовых выражений является одиночное логическое значение, это значение и будет являться результатом выражения;

  • если результатом тестовых выражений является последовательность одного или нескольких узлов, результатом выражения является значение True;

  • иначе возникает статическая ошибка.

Затем логический оператор and и or применяется к получившимся в результате логическим значениям выражений со стандартной логической семантикой.

Следующий запрос получает из каталога продуктов маленькие фронтальные картинки (элемент <Picture>) для указанной модели продукции. Обратите внимание, что для каждого документа с описанием продукта каталог может хранить одно или несколько изображений продукта с различными атрибутами, такими как размер и угол.

SELECT CatalogDescription.query('
     declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
     for $F in /PD:ProductDescription/PD:Picture[PD:Size="small" 
                                                 and PD:Angle="front"]
     return 
         $F 
    ') as Result
FROM  Production.ProductModel
where ProductModelID=19

Результат:

<PD:Picture 
  xmlns:PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
  <PD:Angle>front</PD:Angle>
  <PD:Size>small</PD:Size>
  <PD:ProductPhotoID>31</PD:ProductPhotoID>
</PD:Picture>

См. также

Основные понятия

Выражения языка XQuery