Expressions logiques (XQuery)
XQuery prend en charge les opérateurs logiques and et or.
expression1 and expression2
expression1 or expression2
Les expressions de test, expression1,expression2, dans SQL Server peuvent générer une séquence vide, une séquence d'un ou plusieurs nœuds ou une seule valeur booléenne. D'après le résultat, la valeur booléenne effective est déterminée de la façon suivante :
Si les résultats d'une expression de test est une séquence vide, le résultat de l'expression est False.
Si les résultats de l'expression de test est une seule valeur booléenne, cette valeur est le résultat de l'expression.
Si l'expression de test génère une séquence d'un ou plusieurs nœuds, le résultat de l'expression est True.
Sinon, une erreur statique est générée.
Les opérateurs logiques and et or sont ensuite appliqués aux valeurs booléennes obtenues par les expressions conformément aux sémantiques logiques habituelles.
La requête suivante récupère, à partir du catalogue de produits, les illustrations de face et de petit format, soit l'élément <Picture>, pour un modèle de produit spécifique. Notez que pour chaque document de description de produit, le catalogue peut stocker une ou plusieurs illustrations avec différents attributs tels que taille et angle de prise de vue.
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
Voici le jeu de résultats obtenu :
<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>