Compartilhar via


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>  
  

Confira também

Expressões XQuery