Expressões lógicas (XQuery)
Aplica-se: SQL Server
O XQuery suporta os operadores lógicos e e ou .
expression1 and expression2
expression1 or expression2
As expressões de teste, expression1,``expression2
, no SQL Server podem resultar em uma sequência vazia, uma sequência de um ou mais nós ou um único valor booliano. Com base no resultado, o valor Booliano efetivo da sequência é determinado da maneira seguinte:
Se a expressão de teste resultar em uma sequência vazia, o resultado da expressão será False.
Se a expressão de teste resultar em um único valor Booliano, esse valor será o resultado da expressão.
Se a expressão de teste resultar em uma sequência de um ou mais nós, o resultado da expressão será True.
Caso contrário, um erro estático surgirá.
O operador lógico e e ou é então aplicado aos valores booleanos resultantes das expressões com a semântica lógica padrão.
A consulta a seguir recupera do catálogo de produtos as pequenas imagens de ângulo frontal, o <Picture
> elemento, para um modelo de produto específico. Observe que para cada documento de descrição de produto, o catálogo pode armazenar uma ou mais imagens de produto com atributos diferentes, como tamanho e â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
Este é o resultado:
<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>