Expressões lógicas (XQuery)

O XQuery oferece suporte aos operadores lógicos and e or.

expression1 and expression2
expression1 or expression2

As expressões de teste, expression1,expression2, no SQL Server podem resultar em uma seqüência vazia, uma seqüência de um ou mais nós, ou um único valor Booleano. Com base no resultado, o valor Booleano efetivo da seqüência é determinado da maneira seguinte:

  • Se a expressão de teste resultar em uma seqüência vazia, o resultado da expressão será False.

  • Se a expressão de teste resultar em um único valor Booleano, esse valor será o resultado da expressão.

  • Se a expressão de teste resultar em uma seqüência de um ou mais nós, o resultado da expressão será True.

  • Caso contrário, um erro estático surgirá.

Os operadores lógicos and e or são então aplicados aos valores Booleano resultantes das expressões com as semânticas lógicas padrão.

A consulta a seguir recupera do catálogo de produtos as pequenas imagens de ângulo frontal, o elemento <Picture>, 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>

Consulte também

Conceitos