論理式 (XQuery)
XQuery では、論理 and および論理 or の各演算子がサポートされます。
expression1 and expression2
expression1 or expression2
SQL Server では、テスト式 expression1, および expression2 の結果は空のシーケンス、1 つ以上のノードのシーケンス、または 1 つのブール値になります。 結果に基づいて、次の方法で有効なブール値が決まります。
テスト式の結果が空のシーケンスになった場合、式の結果は False になります。
テスト式の結果が 1 つのブール値になった場合、この値が式の結果になります。
テスト式の結果が 1 つ以上のノードのシーケンスになった場合、式の結果は True になります。
それ以外の場合は、静的エラーが発生します。
次に、論理 and 演算子と論理 or 演算子が、標準の論理セマンティクスで、式の結果のブール値に適用されます。
次のクエリは、特定の製品モデルについて、正面からの小さな写真である <Picture> 要素を製品カタログから取得します。 製品の説明ドキュメントごとに、サイズや角度など、異なる属性を持つ 1 つ以上の製品写真をカタログに格納できることに注意してください。
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>