Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengekstrak Data dengan Cekap daripada Lajur XML dalam Pelayan SQL?

Bagaimanakah Saya Boleh Mengekstrak Data dengan Cekap daripada Lajur XML dalam Pelayan SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-13 12:04:43651semak imbas

How Can I Efficiently Extract Data from XML Columns in SQL Server?

Menguasai Pengekstrakan Data XML dalam Pelayan SQL: Panduan Praktikal

Mengekstrak titik data tertentu daripada lajur XML dalam SQL Server boleh menjadi rumit. Panduan ini menyediakan teknik T-SQL yang cekap untuk memudahkan proses ini.

Untuk menanyakan nilai daripada lajur XML (cth., "Peranan"), gunakan sintaks ini:

<code class="language-sql">SELECT
  Roles
FROM
  MyTable
WHERE
  Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'</code>

Ingat: Lajur bukan XML memerlukan penukaran sebelum membuat pertanyaan. Anda juga boleh menyasarkan atribut XML tertentu.

Pertimbangkan contoh XML ini:

<code class="language-xml"><utilities.codesystems.codesystemcodes ....="" code="0001F" codesystem="2" codetags="-19-" iid="107"></utilities.codesystems.codesystemcodes></code>

Pertanyaan ini mendapatkan semula baris yang CodeSystem sama dengan '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>

Pengendali CROSS APPLY dengan cekap melelar melalui nod XML. Contoh ini mendapatkan semula semua peranan yang mengandungi 'ga':

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

Kaedah ini memperkasakan anda untuk membuat pertanyaan dan mengekstrak data secara berkesan daripada lajur XML Server SQL, memudahkan analisis dan pengurusan data yang canggih.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Data dengan Cekap daripada Lajur XML dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn