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

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

Susan Sarandon
Freigeben: 2025-01-23 08:36:11
Original
987 Leute haben es durchsucht

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

Effizientes Parsen von durch Kommas getrennten Zeichenfolgen in T-SQL

T-SQL verfügt im Gegensatz zu vielen anderen Programmiersprachen nicht über eine integrierte Split-Funktion. Es gibt jedoch mehrere Techniken, die eine String-Aufteilung effektiv erreichen.

Ansatz 1: XML-Parsing nutzen

Dieser Ansatz nutzt die inhärenten Analysefunktionen von XML, um Werte zu trennen. Der folgende T-SQL-Code veranschaulicht dies:

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

Ansatz 2: CTE und CHARINDEX für rekursive Aufteilung

Diese Methode verwendet einen Common Table Expression (CTE) und die Funktion CHARINDEX für die rekursive Zeichenfolgenaufteilung:

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

Weitere Erkundung

Weitere Methoden und eine umfassendere Diskussion zum Teilen von durch Kommas getrennten Zeichenfolgen in T-SQL finden Sie in dieser hilfreichen Ressource:

Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennte Zeichenfolgen in T-SQL 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