Heim > Datenbank > MySQL-Tutorial > Wie teilt man durch Trennzeichen getrennte Zeichenfolgen in T-SQL effizient auf?

Wie teilt man durch Trennzeichen getrennte Zeichenfolgen in T-SQL effizient auf?

Mary-Kate Olsen
Freigeben: 2025-01-23 08:41:11
Original
609 Leute haben es durchsucht

How to Efficiently Split Delimited Strings in T-SQL?

Effizientes Aufteilen von durch Trennzeichen getrennten Zeichenfolgen in T-SQL

In diesem Artikel werden effiziente Techniken zum Trennen von durch Kommas getrennten Zeichenfolgen (z. B. „1,2,3,4,5“) in einzelne Zeilen innerhalb einer T-SQL-Tabelle oder Tabellenvariablen untersucht. Im Folgenden werden zwei wirksame Methoden beschrieben:

Methode 1: XML-Analyse

Dieser Ansatz nutzt die XML-Parsing-Funktionen von T-SQL für eine präzise Lösung:

<code class="language-sql">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)</code>
Nach dem Login kopieren

Methode 2: Rekursiver CTE

Für diejenigen, die einen rekursiven Common Table Expression (CTE)-Ansatz bevorzugen:

<code class="language-sql">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</code>
Nach dem Login kopieren

Beide Methoden bieten eine effiziente String-Aufteilung und ermöglichen eine anschließende Datenverarbeitung und -analyse. Für komplexere String-Manipulationen konsultieren Sie spezielle T-SQL-String-Funktionen und fortgeschrittene Techniken.

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

Quelle:php.cn
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