Expressions logiques (XQuery)
S’applique à :SQL Server
XQuery prend en charge les opérateurs logiques etet ou .
expression1 and expression2
expression1 or expression2
Les expressions de test, expression1,``expression2
, dans SQL Server peuvent entraîner 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.
L’opérateur logique etet ou est ensuite appliqué aux valeurs booléennes résultantes des expressions avec la sémantique logique standard.
La requête suivante récupère à partir du catalogue de produits les petites images d’angle frontal, 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 résultat 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>