逻辑表达式 (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>