我在使用MS SQL 2008 R2迭代并替换字符串中两个字符之间的所有内容时遇到了麻烦。
我目前正试图拉出^和〜字符之间的所有内容。我使用以下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, '^', ''), '~', ''))
我希望输出为" Hello Filler Text更多填充文字"。我有什么想法我做错了吗?
答案 0 :(得分:0)
由于您的输出看起来只是从Sting
读取Alpha值,因此您可以尝试以下SQL
命令:
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(0+@counter), ' ');
SET @counter = @counter + 1;
END;
SELECT LTRIM(RTRIM(REPLACE(REPLACE(@str, '^', ''), '~', '')));
输出
Hello Filler Text Even more filler text