Logické výrazy (XQuery)

platí pro:SQL Server

XQuery podporuje logické operátory a/or.

expression1 and expression2  
expression1 or expression2  

Testovací výrazy expression1,``expression2, v SQL Server mohou vést k prázdné sekvenci, posloupnosti jednoho nebo více uzlů nebo k jedné Booleovské hodnotě. Na základě výsledku je jejich efektivní Booleovská hodnota určena následujícím způsobem:

  • Pokud testovací výraz vede k prázdné posloupnosti, výsledek výrazu je False.

  • Pokud testovací výraz vede k jedné Booleovské hodnotě, tato hodnota je výsledkem výrazu.

  • Pokud testovací výraz vede k posloupnosti jednoho nebo více uzlů, výsledek výrazu je Pravda.

  • Jinak se objeví statická chyba.

Logický operátor aa se pak aplikuje na výsledné Booleovské hodnoty výrazů se standardní logickou sémantikou.

Následující dotaz získává z katalogu produktu malé obrázky v předním úhlu, prvek <Picture> , pro konkrétní model produktu. Všimněte si, že pro každý dokument s popisem produktu může katalog uchovávat jednu nebo více fotografií produktů s různými atributy, jako je velikost a úhel.

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  

Toto je výsledek:

<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>