Heim >Datenbank >MySQL-Tutorial >Wie kann ich durch Kommas getrennte Zeichenfolgen in SQL Server 2012 aufteilen, ohne STRING_SPLIT zu verwenden?

Wie kann ich durch Kommas getrennte Zeichenfolgen in SQL Server 2012 aufteilen, ohne STRING_SPLIT zu verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 07:50:421044Durchsuche

How Can I Split Comma-Separated Strings in SQL Server 2012 Without Using STRING_SPLIT?

SQL Server 2012 Komma-getrennte Zeichenfolgenaufteilung: Eine XML-basierte Lösung

Der Kompatibilitätsgrad von SQL Server 2012 kann den Zugriff auf die Funktion STRING_SPLIT einschränken. In diesem Artikel wird eine effektive Problemumgehung mithilfe von XML-Techniken zum Teilen von durch Kommas getrennten Werten vorgestellt.

Nutzung von XML und CROSS APPLY

Diese Methode wandelt die durch Kommas getrennte Zeichenfolge in eine XML-Struktur um. CROSS APPLY extrahiert dann jeden Wert als Knoten aus diesem XML. Hier ist der SQL-Code:

<code class="language-sql">SELECT Split.a.value('.', 'NVARCHAR(MAX)') AS DATA
FROM
(
    SELECT CAST('<X>'+REPLACE(@ID, ',', '</X><X>')+'</X>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/X') AS Split(a);</code>

Anschauliches Beispiel

Lassen Sie uns diese Beispielparameter verwenden:

<code class="language-sql">DECLARE @ID NVARCHAR(300)= '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';
DECLARE @Marks NVARCHAR(300)= '0,1,2,5,8,9,4,6,7,3,5,2,7,1,9,4,0,2,5,0';</code>

Die folgende Abfrage veranschaulicht das Aufteilen dieser Zeichenfolgen und das Einfügen der Ergebnisse in eine Tabelle:

<code class="language-sql">INSERT INTO @StudentsMark
SELECT C.id, C1.marks
FROM CTE C
LEFT JOIN CTE1 C1 ON C1.RN = C.RN;</code>

Ergebnis

Das Ergebnis ist eine Tabelle mit den Spalten „id“ und „marks“, die jeweils mit den geteilten Werten von @ID und @Marks gefüllt sind.

Dieser XML-basierte Ansatz bietet eine zuverlässige Methode zum Umgang mit durch Kommas getrennten Daten in SQL Server 2012 und umgeht Einschränkungen der Kompatibilitätsebene.

Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Zeichenfolgen in SQL Server 2012 aufteilen, ohne STRING_SPLIT zu verwenden?. 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