如何用 sql 中的单个字符串替换多个连续字符串
how to replacle multiple continuous string with single string in sql
我有一个字符串 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
现在我想用单个替换多个 commas
作为
'kj,sdkdsd,das,das,sdasd,ad'
注意:
最佳表现
这将为您完成:
declare @str varchar(100)='kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
declare @strBefore varchar(100)=''
WHILE @strBefore<>@str BEGIN
SET @strBefore=@str
SET @str=REPLACE(@str,',,',',')
END
print @str
你可以在 WHILE
循环中完成:
DECLARE @s NVARCHAR(200) = 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
WHILE @s LIKE '%,,%'
SET @s = REPLACE(@s, ',,', ',')
SELECT @s
使用这个:
DECLARE @mystring VARCHAR(50) = 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
SELECT REPLACE(REPLACE(REPLACE(@mystring, ',', '{}'), '}{', ''), '{}', ',')
输出: kj,sdkdsd,das,das,dasdasd,ad
我会用 CLR RegEx 替换。在这里阅读更多内容:
然后调用它:
SELECT dbo.RegExReplace('kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad', ',{2,}', ',')
我有一个字符串 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
现在我想用单个替换多个 commas
作为
'kj,sdkdsd,das,das,sdasd,ad'
注意: 最佳表现
这将为您完成:
declare @str varchar(100)='kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
declare @strBefore varchar(100)=''
WHILE @strBefore<>@str BEGIN
SET @strBefore=@str
SET @str=REPLACE(@str,',,',',')
END
print @str
你可以在 WHILE
循环中完成:
DECLARE @s NVARCHAR(200) = 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
WHILE @s LIKE '%,,%'
SET @s = REPLACE(@s, ',,', ',')
SELECT @s
使用这个:
DECLARE @mystring VARCHAR(50) = 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
SELECT REPLACE(REPLACE(REPLACE(@mystring, ',', '{}'), '}{', ''), '{}', ',')
输出: kj,sdkdsd,das,das,dasdasd,ad
我会用 CLR RegEx 替换。在这里阅读更多内容:
然后调用它:
SELECT dbo.RegExReplace('kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad', ',{2,}', ',')