Kolom dengan nama pengujian simpul XPath

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Jika nama kolom adalah salah satu pengujian simpul XPath, konten dipetakan seperti yang ditunjukkan dalam tabel berikut. Ketika nama kolom adalah pengujian simpul XPath, konten dipetakan ke simpul yang sesuai. Jika jenis kolom SQL adalah xml, kesalahan akan ditampilkan.

Nama kolom Perilaku
text() Untuk kolom dengan nama teks(), nilai string di kolom tersebut ditambahkan sebagai simpul teks.
comment() Untuk kolom dengan nama komentar(), nilai string di kolom tersebut ditambahkan sebagai komentar XML.
node() Untuk kolom dengan nama node(), hasilnya sama seperti saat nama kolom adalah karakter kartubebas (*).
processing-instruction(name) Untuk kolom dengan nama instruksi pemrosesan, nilai string di kolom tersebut ditambahkan sebagai nilai PI untuk nama target instruksi pemrosesan.

Kueri berikut menunjukkan penggunaan pengujian simpul sebagai nama kolom. Ini menambahkan node teks dan komentar dalam XML yang dihasilkan.

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;

Ini adalah hasilnya:


<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>

Baca juga