Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2005:Zeichenfolge in Array aufteilen und Array (x) abrufen?

Ich gehe hier davon aus, dass es immer genau 4 Teile sind.

In diesem Fall könnten Sie / ersetzen mit . und verwenden Sie den netten eingebauten ParseName Funktion. Das einzige Problem in Ihrem Beispiel ist, dass es vom Ende an zählt, also müssen Sie vorsichtig sein, welchen Teil Sie wollen:

DECLARE @test VARCHAR(max);
SET @test = 'Peter/Parker/Spiderman/Marvel';
SET @test = Replace(@test, '/', '.');

SELECT Parsename(@test, 4),--returns Peter
       Parsename(@test, 3),--returns Parker
       Parsename(@test, 2),--returns Spiderman
       Parsename(@test, 1) --returns Marvel

Wenn es eine variable Anzahl von Teilen gibt, müssen Sie eine Funktion zum Aufteilen von Zeichenfolgen finden, die dies für Sie erledigt, es ist keine gute eingebaut. Viele Optionen können gefunden werden, indem Sie SO:https://stackoverflow.com/search?q=[sql+server]+string+split

Wort der Warnung - wenn Sie versuchen, eine Nummer mit PARSENAME zu verwenden außer 1-4 ist das Ergebnis immer NULL.