Heim > Datenbank > MySQL-Tutorial > Wie teile ich durch Kommas getrennte Zeichenfolgen in T-SQL in Zeilen auf?

Wie teile ich durch Kommas getrennte Zeichenfolgen in T-SQL in Zeilen auf?

Susan Sarandon
Freigeben: 2025-01-23 08:51:11
Original
506 Leute haben es durchsucht

How to Split Comma-Delimited Strings into Rows in T-SQL?

String-Splitting-Techniken in T-SQL

Das Aufteilen einer durch Kommas getrennten Zeichenfolge in mehrere Zeilen ist eine häufige Aufgabe in SQL. T-SQL (Microsofts SQL-Implementierung) bietet mehrere Möglichkeiten, dieses Ziel zu erreichen.

XML verwenden

Eine Möglichkeit besteht darin, die Zeichenfolge in XML zu konvertieren. Die XML-Struktur ermöglicht eine einfache Extraktion einzelner Werte als XML-Knoten:

DECLARE @xml xml, @str varchar(100), @delimiter varchar(10)
SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
SELECT C.value('.', 'varchar(10)') as value FROM @xml.nodes('X') as X(C)
Nach dem Login kopieren

Verwenden Sie CTE (Common Table Expression)

Eine Alternative besteht darin, CTE zu verwenden, um eine Reihe von Zeilen zu erstellen, die Zeichenfolgenzeichen darstellen:

DECLARE @str varchar(100), @delimiter varchar(10)
SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15'
SET @delimiter = ','
;WITH cte AS
(
    SELECT 0 a, 1 b
    UNION ALL
    SELECT b, CHARINDEX(@delimiter, @str, b) + LEN(@delimiter)
    FROM CTE
    WHERE b > a
)
SELECT SUBSTRING(@str, a,
CASE WHEN b > LEN(@delimiter) 
    THEN b - a - LEN(@delimiter) 
    ELSE LEN(@str) - a + 1 END) value      
FROM cte WHERE a > 0
Nach dem Login kopieren

Andere Methoden

Andere Möglichkeiten zum Teilen von Zeichenfolgen in T-SQL umfassen die Verwendung der Funktion CHARINDEX() und der Funktion REGEX_SPLIT_TO_TABLE() (eingeführt in SQL Server 2016). Weitere Beispiele und Diskussionen finden Sie in verwandten Artikeln wie „Wie teilt man eine durch Kommas getrennte Zeichenfolge auf?“

Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennte Zeichenfolgen in T-SQL in Zeilen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage