Expresiones lógicas (XQuery)
XQuery admite los operadores lógicos and y or.
expression1 and expression2
expression1 or expression2
Las expresiones de prueba, expression1,``expression2
, en SQL Server pueden dar como resultado una secuencia vacía, una secuencia de uno o varios nodos, o un solo valor booleano. En función del resultado, se determinará su valor booleano efectivo de la forma siguiente:
- Si la expresión de prueba da como resultado una secuencia vacía, el resultado será False.
- Si la expresión de prueba da como resultado un solo valor booleano, este valor será el resultado de la expresión.
- Si la expresión de prueba da como resultado una secuencia de uno o varios nodos, el resultado de la expresión será True.
- De lo contrario, se generará un error estático.
A continuación, se aplicarán los operadores lógicos and y or a los valores booleanos resultantes de las expresiones con la semántica lógica estándar.
La consulta siguiente recupera del catálogo de productos las imágenes pequeñas de ángulo frontal, el elemento <Picture
>, de un modelo de producto determinado. Tenga en cuenta que para cada documento de descripción de productos, se pueden almacenar en el catálogo una o varias imágenes de producto con distintos atributos, como el tamaño y el ángulo.
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
El resultado es el siguiente:
<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>