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:
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);
Anschauliches Beispiel
Lassen Sie uns diese Beispielparameter verwenden:
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';
Die folgende Abfrage veranschaulicht das Aufteilen dieser Zeichenfolgen und das Einfügen der Ergebnisse in eine Tabelle:
INSERT INTO @StudentsMark SELECT C.id, C1.marks FROM CTE C LEFT JOIN CTE1 C1 ON C1.RN = C.RN;
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!