Schulung, Beratung und Entwicklung

Glück IT

Gesellschaft für IT Beratung, Schulung und Entwicklung

NEWS

Content Management System ®CMAssist

Eine Zeichenkette anhand eines Trennzeichens zerlegen und das Nte Element abfragen (TSQL)

Um im SQL Server eine Zeichnektte anhand eines Trennzeichens zu zerlegen, ist es nicht nötig eine Funktion oder Stored Procedure zu schreiben. Es reicht eine Common Table Expression (CTE) zu erstellen die diese Aufgabe umsetzt.

DECLARE @test TABLE (content varchar(20));
INSERT INTO @test VALUES ('x_y_z'),('a_b_c');

;with split(content, start, pos, clue) as (
select content, 1, charindex('_', content) , 1
from @test
union all
select content, pos + 1, charindex('_', content, pos + 1), clue+1
from split
where pos > 0
)
select *
, substring(content, start, case when pos > 0 then pos - start else len(content) end) token
from split
where clue = 2 -- hole mir das zweite Element aus der Zeichenkette
order by content, start

Das Ergebnis sieht wie folgt aus:

contentstartposcluetoken
a_b_c342b
x_y_z342y