Heim >Datenbank >MySQL-Tutorial >Wie kann ich Daten effizient aus XML-Spalten in SQL Server extrahieren?

Wie kann ich Daten effizient aus XML-Spalten in SQL Server extrahieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-13 12:04:43651Durchsuche

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

XML-Datenextraktion in SQL Server beherrschen: Ein praktischer Leitfaden

Das Extrahieren bestimmter Datenpunkte aus XML-Spalten in SQL Server kann komplex sein. Dieser Leitfaden stellt effiziente T-SQL-Techniken zur Vereinfachung dieses Prozesses bereit.

Um einen Wert aus einer XML-Spalte (z. B. „Rollen“) abzufragen, verwenden Sie diese Syntax:

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

Denken Sie daran: Nicht-XML-Spalten müssen vor der Abfrage konvertiert werden. Sie können auch auf bestimmte XML-Attribute abzielen.

Betrachten Sie dieses XML-Beispiel:

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

Diese Abfrage ruft Zeilen ab, in denen CodeSystem gleich „2“ ist:

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

Der CROSS APPLY-Operator iteriert effizient durch XML-Knoten. Dieses Beispiel ruft alle Rollen ab, die „ga“:

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

Mit diesen Methoden können Sie effektiv Daten aus den XML-Spalten von SQL Server abfragen und extrahieren und so eine anspruchsvolle Datenanalyse und -verwaltung ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich Daten effizient aus XML-Spalten in SQL Server extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn