2017-10-18 4 views
1

Ich habe Probleme beim Iterieren und Ersetzen alles zwischen zwei Zeichen in einer Zeichenfolge mit MS SQL 2008 R2.MS SQL 2008 - Iterate und ersetzen alles zwischen zwei Zeichen

Ich versuche derzeit, alles zwischen den^und ~ Zeichen herauszuziehen. Ich benutze die folgende SQL:

DECLARE @string VARCHAR(255) = '0123^Hello~456^Filler Text~789^Even more filler text~' 

SELECT STUFF(@string, PATINDEX('%^%',@string), PATINDEX('%~%',@string)+1 - PATINDEX('%^%',@string), replace(replace(@string, '^', ''), '~', '')) 

Ich möchte die Ausgabe "Hello Filler Text noch mehr Fülltext" sein. Irgendwelche Ideen, was ich falsch mache?

+3

Obwohl Sie eine Funktion schreiben, könnte dies zu tun, SQL Server ist nicht das beste Werkzeug für den Job. –

Antwort

0

als Ausgabe unten nur Alpha-Werte sieht aus Sting dann versuchen Sie könnten SQL Befehl wie das Lesen:

DECLARE @str NVARCHAR(MAX); 
DECLARE @counter INT; 
SET @str = '0123^Hello~456^Filler Text~789^Even more filler text~'; 
SET @counter = 0; 
WHILE @counter <= 57 
    BEGIN 
     SET @str = REPLACE(@str, CHAR([email protected]), ' '); 
     SET @counter = @counter + 1; 
    END; 
SELECT LTRIM(RTRIM(REPLACE(REPLACE(@str, '^', ''), '~', ''))); 

Ausgang:

Hello Filler Text Even more filler text 
Verwandte Themen