Pengeluaran Nilai Lajur XML Pelayan SQL
Jenis lajur XML Pelayan SQL membolehkan penyimpanan dan mendapatkan semula data XML yang cekap. Panduan ini menunjukkan kaedah yang berkesan untuk menanyakan nilai khusus dalam lajur ini.
Cabaran:
Bayangkan lajur XML bernama "Peranan" dalam pangkalan data SQL Server anda, yang mengandungi data seperti ini:
<code class="language-xml"><root><role>Alpha</role><role>Beta</role><role>Gamma</role></root></code>
Matlamatnya ialah untuk mencari semua baris di mana peranan tertentu (dinyatakan sebagai parameter) wujud dalam lajur "Peranan".
Penyelesaian:
Pendekatan mudah menggunakan fungsi value()
:
<code class="language-sql">SELECT Roles FROM MyTable WHERE Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'</code>
Di sini, Roles
ialah lajur XML dan StringToSearchFor
mewakili peranan yang anda cari. Fungsi value()
mengekstrak nod menggunakan ungkapan XPath.
Senario Lanjutan:
Pertanyaan yang lebih kompleks mungkin memerlukan teknik ini:
CAST()
untuk menukarnya sebelum membuat pertanyaan.value()
untuk menyasarkan atribut khusus.Kecekapan Dipertingkat:
Untuk dokumen XML yang besar, pengendali CROSS APPLY
menawarkan peningkatan prestasi yang ketara:
<code class="language-sql">SELECT * FROM ( SELECT pref.value('(text())[1]', 'varchar(32)') AS RoleName FROM MyTable CROSS APPLY Roles.nodes('/root/role') AS Roles(pref) ) AS Result WHERE RoleName LIKE '%ga%'</code>
Roles.nodes()
mengekstrak semua nod yang sepadan berdasarkan ungkapan XPath. value()
kemudian mendapatkan semula kandungan teks setiap nod, membolehkan pemprosesan cekap berbilang peranan dalam satu dokumen XML.
Ringkasan:
Mendapatkan semula nilai daripada lajur SQL Server XML memerlukan fungsi dan strategi khusus. Kaedah yang dibentangkan di sini menyediakan penyelesaian serba boleh untuk mengekstrak kedua-dua data ringkas dan kompleks daripada XML yang disimpan dalam pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Nilai dengan Cekap dari Lajur XML dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!