Aracılığıyla paylaş


XPath düğüm testinin adına sahip sütunlar

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Sütun adı XPath düğümü testlerinden biriyse, içerik aşağıdaki tabloda gösterildiği gibi eşlenir. Sütun adı bir XPath düğümü testi olduğunda, içerik ilgili düğüme eşlenir. Sütunun SQL türü xml ise bir hata döndürülür.

Sütun Adı Davranış
text() Text() adlı bir sütun için, bu sütundaki dize değeri metin düğümü olarak eklenir.
yorumYap() Açıklama() adlı bir sütun için, söz konusu sütundaki dize değeri XML açıklaması olarak eklenir.
node() Node() adlı bir sütun için sonuç, sütun adının joker karakter (*) olmasıyla aynıdır.
işleme yönergesi(ad) İşleme yönergesi adına sahip bir sütun için, bu sütundaki dize değeri işleme yönergesi hedef adı için PI değeri olarak eklenir.

Aşağıdaki sorgu, düğüm testlerinin sütun adları olarak kullanımını gösterir. Sonuçta elde edilen XML'ye metin düğümleri ve açıklamalar ekler.

USE AdventureWorks2022;
GO
SELECT E.BusinessEntityID "@EmpID",
        'Example of using node tests such as text(), comment(), processing-instruction()'  as "comment()",
        'Some PI'                        as "processing-instruction(PI)",
        'Employee name and address data' as "text()",
        'middle name is optional'        as "EmpName/text()",
        FirstName                        as "EmpName/First",
        MiddleName                       as "EmpName/Middle",
        LastName                         as "EmpName/Last",
        AddressLine1                     as "Address/AddrLine1",
        AddressLine2                     as "Address/AddrLIne2",
        City                             as "Address/City"
FROM   HumanResources.Employee AS E
INNER JOIN Person.Person AS P
    ON P.BusinessEntityID = E.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS BAE
    ON BAE.BusinessEntityID = E.BusinessEntityID
INNER JOIN Person.Address AS A
    ON BAE.AddressID = A.AddressID
WHERE  E.BusinessEntityID=1
FOR XML PATH;

Sonuç şu şekildedir:


<row EmpID="1">
<!--Example of using node tests such as text(), comment(), processing-instruction() -->
<?PI Some PI?>
    Employee name and address data
    <EmpName>middle name is optional
        <First>Ken</First>
        <Last>Sánchez</Last>
    </EmpName>
    <Address>
        <AddrLine1>4350 Minute Dr.</AddrLine1>
        <City>Minneapolis</City>
    </Address>
</row>

Ayrıca bakınız