„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich den Wert einer XML -Spalte in SQL Server abfragen?

Wie kann ich den Wert einer XML -Spalte in SQL Server abfragen?

Gepostet am 2025-04-19
Durchsuche:709

How to Query Values within XML Columns in SQL Server?

Zugriff auf Daten in den XML -Spalten des SQL Servers

SQL Server ermöglicht das Speichern von XML -Daten in Spalten, die als XML -Datentypen definiert wurden. Das Abrufen spezifischer Daten aus diesen Spalten erfordert spezielle Abfragen.

Angenommen, Sie haben eine XML -Spalte mit dem Namen "Rollen" mit dieser Struktur:

AlphaBetaGamma

um Zeilen zu finden, die eine bestimmte Rolle enthalten, verwenden Sie diese Abfrage:

SELECT
  Roles
FROM
  MyTable
WHERE
  Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'

Dies verwendet roles.value , um die erste rollen Element -Wert zu extrahieren, sie in varchar (max) konvertieren. Dies ermöglicht die Suche nach bestimmten Rollen.

Wenn Ihre Spalte nicht bereits ein XML -Datentyp ist, verwenden Sie cast , um sie vor der Abfrage zu konvertieren.

.

Die Abfrage kann auch auf XML -Attribute abzielen. Zum Beispiel mit dieser XML in der Spalte "Daten":

um Zeilen zu bekommen, wo codesystem ist "2":

SELECT
  [data]
FROM
  [dbo].[CodeSystemCodes_data]
WHERE
  CAST([data] AS XML).value('(/Utilities.CodeSystems.CodeSystemCodes/@CodeSystem)[1]', 'varchar(max)') = '2'

Für erweiterte XML-Abfragen in T-SQL siehe:

Alternativ cross anwenden bietet mehr Flexibilität für die Suche nach mehreren "Rolle" Elemente:

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

Dieser Ansatz ermöglicht eine effizientere und gezieltere Extraktion von Daten aus XML -Spalten in SQL Server.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3