Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:SQL Server
Alle Beispiele in Path Expressions (XQuery) verwenden nicht abgekürzte Syntax für Pfadausdrücke. Die ungekürzte Syntax für einen Achsenschritt in einem Pfadausdruck umfasst den Achsennamen und den Knotentest, getrennt durch einen Doppelpunkt und gefolgt von null oder mehr Schrittqualifizierern.
Zum Beispiel:
child::ProductDescription[attribute::ProductModelID=19]
XQuery unterstützt die folgenden Abkürzungen für die Verwendung in path-Ausdrücken:
Die
childAchse ist die Standardachse. Daher kann diechild::Achse aus einem Schritt in einem Ausdruck weggelassen werden. So kann z. B./child::ProductDescription/child::Summaryals/ProductDescription/Summarygeschrieben werden.Eine
attributeAchse kann als @gekürzt werden. So kann z. B./child::ProductDescription[attribute::ProductModelID=10]als/ProductDescription[@ProductModelID=10]geschrieben werden.A
/descendant-or-self::node()/kann mit //abgekürzt werden. So kann z. B./descendant-or-self::node()/child::act:telephoneNumberals//act:telephoneNumbergeschrieben werden.Die vorherige Abfrage ruft alle Rufnummern ab, die in der AdditionalContactInfo-Spalte in der Contact-Tabelle gespeichert sind. Das Schema für AdditionalContactInfo wird so definiert, dass ein telephoneNumber-Element< an einer >beliebigen Stelle im Dokument angezeigt werden kann. Aus diesem Grund müssen Sie zum Abrufen aller Rufnummern jeden Knoten im Dokument durchsuchen. Die Suche beginnt im Stamm des Dokuments und wird dann über alle nachfolgenden Knoten fortgesetzt.
Die folgende Abfrage ruft alle Rufnummern für einen bestimmten Kundenkontakt ab:
SELECT AdditionalContactInfo.query(' declare namespace act="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; declare namespace crm="https://schemas.adventure-works.com/Contact/Record"; declare namespace ci="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; /descendant-or-self::node()/child::act:telephoneNumber ') AS result FROM Person.Contact WHERE ContactID = 1;Wenn Sie den Pfadausdruck durch die abgekürzte Syntax
//act:telephoneNumberersetzen, können Sie die gleichen Ergebnisse erzielen.Der
self::node()in einem Schritt kann mit einem einzelnen Punkt (.) abgekürzt werden. Der Punkt ist jedoch nicht gleichwertig oder austauschbar mit demself::node().In der folgenden Abfrage stellt die Verwendung eines Punkts z. B. einen Wert und keinen Knoten dar:
("abc", "cde")[. > "b"]Der
parent::node()in einem Schritt kann mit einem doppelten Punkt (..) abgekürzt werden.