逻辑表达式 (XQuery)

适用于:SQL Server

XQuery 支持逻辑 和 或 运算符。

expression1 and expression2  
expression1 or expression2  

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

  • 如果测试表达式的结果是空序列,则表达式的结果为 False。

  • 如果测试表达式的结果是单个布尔值,则此值便为表达式的结果。

  • 如果测试表达式的结果是包含一个或多个节点的序列,则表达式的结果为 True。

  • 否则,将引发静态错误。

然后,逻辑 和 或 运算符将应用于具有标准逻辑语义的表达式的布尔值。

以下查询从产品目录检索特定产品模型的正面小图片( <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 表达式