Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:SQL Server
Все примеры в выражениях пути (XQuery) используют небрежимированный синтаксис для выражений путей. включающий в себя имя оси и элемент проверки узла, которые разделены двойным двоеточием, за которыми могут следовать квалификаторы шага.
Например:
child::ProductDescription[attribute::ProductModelID=19]
Запрос XQuery поддерживает в выражениях пути следующие сокращения.
childОсь — это ось по умолчанию. Таким образом,child::ось может быть опущена из шага в выражении. Например,/child::ProductDescription/child::Summaryможет быть записано как/ProductDescription/Summary.attributeОсь может быть сокращена как @. Например,/child::ProductDescription[attribute::ProductModelID=10]может быть записано как/ProductDescription[@ProductModelID=10].Может
/descendant-or-self::node()/быть сокращено как //. Например,/descendant-or-self::node()/child::act:telephoneNumberможет быть записано как//act:telephoneNumber.Предыдущий запрос получает все телефонные номера, хранящиеся в столбце AdditionalContactInfo таблицы Contact. Схема для AdditionalContactInfo определяется таким образом, что <элемент telephoneNumber> может отображаться в любом месте документа. Поэтому для получения всех телефонных номеров необходимо просмотреть каждый узел в документе. Поиск начинается от корня документа и проходит по всем узлам, являющимся его потомками.
Следующий запрос получает все контактные телефонные номера для указанного клиента:
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;Если выражение пути заменяется сокращенным синтаксическим выражением,
//act:telephoneNumberобеспечивает тот же самый результат.На
self::node()шаге можно сокращено до одной точки (.). Однако точка не эквивалентна или взаимозаменяема.self::node()Например, в следующем запросе точка представляет значение, а не узел:
("abc", "cde")[. > "b"]На
parent::node()шаге можно сократить до двойной точки (..).