Freigeben über


Logische Ausdrücke (XQuery)

XQuery unterstützt die logischen Operatoren and und or.

expression1 and expression2
expression1 or expression2

Die Testausdrücke expression1,expression2 in SQL Server können als Ergebnis eine leere Sequenz, eine Sequenz aus einem oder mehreren Knoten oder einen einzelnen booleschen Wert besitzen. Basierend auf dem Ergebnis wird der effektive boolesche Wert auf folgende Weise bestimmt:

  • Wenn der Testausdruck eine leere Sequenz ergibt, ist das Ergebnis des Ausdrucks False.

  • Wenn der Testausdruck einen einzelnen booleschen Wert ergibt, gilt dieser Wert als Ergebnis des Ausdrucks.

  • Wenn der Testausdruck eine Sequenz aus einem oder mehreren Knoten ergibt, ist das Ergebnis des Ausdrucks True.

  • Anderenfalls wird ein statischer Fehler ausgegeben.

Die logischen Operatoren and und or werden dann auf die sich ergebenden booleschen Werte der Ausdrücke mit der logischen Standardsemantik angewendet.

Die folgende Abfrage ruft die kleinformatigen Vorderansichtsabbildungen aus dem <Picture>-Element im Produktmodellkatalog für ein bestimmtes Produktmodell ab. Beachten Sie, dass der Katalog für jedes Produktbeschreibungsdokument eine oder mehrere Produktabbildungen mit verschiedenen Attributen wie z. B. Größe und Ansicht speichern kann.

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

Dies ist das Ergebnis:

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

Siehe auch

Konzepte