Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Az Elérésiút-kifejezések (XQuery) összes példája az elérési utak kifejezéseinek nem megfelelő szintaxisát használja. Az elérésiút-kifejezés tengelylépéseinek nem megfelelő szintaxisa tartalmazza a tengely nevét és a csomóponttesztet, kettős kettősponttal elválasztva, majd nulla vagy több lépés-minősítővel.
Például:
child::ProductDescription[attribute::ProductModelID=19]
Az XQuery a következő rövidítéseket támogatja az elérésiút-kifejezésekben való használathoz:
A
childtengely az alapértelmezett tengely. Ezért achild::tengely kihagyható egy kifejezés egy lépéséből. A/child::ProductDescription/child::Summarypéldául/ProductDescription/Summaryírva.A
attributetengelyek rövidítése @. A/child::ProductDescription[attribute::ProductModelID=10]például/ProductDescription[@ProductModelID=10]írva.A
/descendant-or-self::node()/rövidítése lehet //. A/descendant-or-self::node()/child::act:telephoneNumberpéldául//act:telephoneNumberírva.Az előző lekérdezés lekéri a Névjegy tábla AdditionalContactInfo oszlopában tárolt összes telefonszámot. Az AdditionalContactInfo sémája úgy van definiálva, hogy egy <telephoneNumber> elem bárhol megjelenhet a dokumentumban. Ezért az összes telefonszám lekéréséhez a dokumentum minden csomópontjában keresnie kell. A keresés a dokumentum gyökerénél kezdődik, és az összes leszármazott csomóponton folytatódik.
Az alábbi lekérdezés lekéri egy adott ügyfél kapcsolattartó összes telefonszámát:
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;Ha az elérési út kifejezést a rövidített szintaxisra cseréli,
//act:telephoneNumber, ugyanazokat az eredményeket kapja.A
self::node()lépésben szereplő érték egyetlen pontra (.) rövidíthető. A pont azonban nem egyenértékű vagy felcserélhető aself::node().A következő lekérdezésben például a pont használata nem csomópontot, hanem értéket jelöl:
("abc", "cde")[. > "b"]A
parent::node()lépésben szereplő érték rövidítése dupla pont (..).