Aracılığıyla paylaş


Yol ifadesinde kısaltılmış sözdizimi kullanarak

Tüm örneklerde XQuery yolu ifadelerde anlama yol ifadeler için kısaltılmamış sözdizimini kullanın.Bir eksen adımda yol ifade kısaltılmamış sözdizimi, çift iki nokta ile ayrılmış ve sıfır veya daha fazla adım niteleyicileri ardından eksen adı ve düğüm sınaması, içerir.

Örneğin:

child::ProductDescription[attribute::ProductModelID=19]

XQuery yol ifadeleri kullanmak için aşağıdaki kısaltmaları destekler:

  • The child axis is the default axis.Bu nedenle, alt:: Eksen adım'den etmeyebilirsiniz bir ifade.Örneğin, /child::ProductDescription/child::Summary olarak yazılabilir /ProductDescription/Summary.

  • Bir öznitelik eksen kısaltılabilir @ gibi.Örneğin, /child::ProductDescription[attribute::ProductModelID=10] olarak yazılabilir /ProudctDescription[@ProductModelID=10].

  • A /descendant-or-self::node()/ can be abbreviated as //.Örneğin, /descendant-or-self::node()/child::act:telephoneNumber olarak yazılabilir //act:telephoneNumber.

    Önceki sorgu, kişinin AdditionalContactInfo sütunda depolanan tüm telefon numaralarını alır tablo.AdditionalContactInfo şemasını bir şekilde tanımlanırsa, bir <telephoneNumber> öğe görüntülenebilir herhangi bir belge.Bu nedenle, tüm telefon numaralarını almak için her düğümün belgedeki aramak zorunda.Aramaya belgenin kökünde başlar ve tüm alt düğümleri arasında devam eder.

    Belirli bir müşteri ilgili kişi için telefon numaraları aşağıdaki sorgu alır:

     SELECT AdditionalContactInfo.query('           
                 declare namespace act="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";           
                 declare namespace crm="http://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.Person           
     WHERE BusinessEntityID = 291;           
    

    Kısaltılmış sözdizimi ile yol ifade yerine, //act:telephoneNumber, aldığınız aynı sonuçlar.

  • The self::node() in a step can be abbreviated to a single dot (.).Ancak, Boncuk karşılığı veya onun yerine değil self::node().

    Örneğin, aşağıdaki sorguda, değeri ve bir düğüm nokta kullanımını gösterir:

    ("abc", "cde")[. > "b"]
    
  • The parent::node() in a step can be abbreviated to a double dot (..).