Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyoal Nilai Lajur XML dengan Cekap dalam Pelayan SQL?
Mengekstrak Data daripada Lajur XML dalam Pelayan SQL
Mengakses dan mendapatkan semula titik data tertentu daripada lajur XML dalam SQL Server dengan cekap adalah penting untuk pengurusan data yang berkesan. Panduan ini menunjukkan teknik untuk menapis baris berdasarkan kehadiran nilai tertentu dalam data XML.
Kaedah 1: Pengekstrakan Nilai Terus dengan value()
Untuk mencari baris yang mengandungi peranan khusus dalam lajur XML bernama "Peranan," gunakan fungsi value()
:
<code class="language-sql">SELECT Roles FROM MyTable WHERE Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor';</code>
Pertanyaan ini mengekstrak nilai elemen <role>
pertama dan membandingkannya menggunakan operator LIKE
.
Nota Penting:
CAST(Roles AS XML)
untuk menukarnya.<role>
padanan pertama. Laraskan ungkapan XPath ((/root/role)[1]
) untuk menyasarkan elemen atau atribut yang berbeza mengikut keperluan. Contohnya, untuk menapis berdasarkan atribut CodeSystem
dengan nilai '2':<code class="language-sql">SELECT [data] FROM [dbo].[CodeSystemCodes_data] WHERE CAST([data] as XML).value('(/Utilities.CodeSystems.CodeSystemCodes/@CodeSystem)[1]', 'varchar(max)') = '2';</code>
Kaedah 2: Pertanyaan Dipertingkat dengan CROSS APPLY
dan nodes()
Untuk pertanyaan yang lebih fleksibel bagi elemen XML individu, gunakan CROSS APPLY
dan nodes()
:
<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>
CROSS APPLY
menjana jadual maya untuk setiap elemen <role>
, membenarkan pemprosesan baris demi baris. nodes()
mengekstrak setiap <role>
elemen dan value()
mendapatkan semula kandungan teksnya. Pendekatan ini membolehkan penapisan dan manipulasi data yang lebih kompleks.
Kaedah ini menyediakan penyelesaian yang teguh untuk menanyakan nilai lajur XML dalam SQL Server, membolehkan pengambilan dan penapisan data yang cekap berdasarkan kriteria tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Nilai Lajur XML dengan Cekap dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!