Logische Ausdrücke (XQuery)
Gilt für:SQL Server
XQuery unterstützt die logischen operatoren undund oder .
expression1 and expression2
expression1 or expression2
Die Testausdrücke , expression1,``expression2
in SQL Server können zu einer leeren Sequenz, einer Sequenz von einem oder mehreren Knoten oder einem einzelnen booleschen Wert führen. 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.
Der logische undund oder -Operator wird dann mit der logischen Standardsemantik auf die resultierenden booleschen Werte der Ausdrücke angewendet.
Die folgende Abfrage ruft aus dem Produktkatalog die vorderen kleinen Bilder, das <Picture
> Element, 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>