逻辑表达式 (XQuery)

XQuery 支持逻辑 and 和 or 运算符。

expression1 and expression2
expression1 or expression2

SQL Server 中的测试表达式 expression1,expression2 的结果可能是空序列、包含一个或多个节点的序列或单个布尔值。根据结果,按照下列方式确定它们的有效布尔值:

  • 如果测试表达式的结果是空序列,则表达式的结果为 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>

请参阅

概念