如何在sql中用单个字符串重放多个连续字符串
我有一个字符串作为如何在sql中用单个字符串重放多个连续字符串,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个字符串作为'kj,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad' 现在我想用单引号替换多个逗号 作为 'kj,sdkdsd,das,das,sdasd,ad' 注: 这将为您提供最佳性能: declare @str varchar(100)='kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad' declare @strBefore varchar(100)='' WHILE @strBefore<>@st
'kj,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
现在我想用单引号替换多个逗号
作为
'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
declare@str varchar(100)='kj,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,,,,ad'
声明@strBefore varchar(100)=”
当@strBefore@str开始
设置@strBefore=@str
设置@str=REPLACE(@str,,,,,,,,)
结束
打印@str
这将为您做到:
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
declare@str varchar(100)='kj,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,,,,ad'
声明@strBefore varchar(100)=”
当@strBefore@str开始
设置@strBefore=@str
设置@str=REPLACE(@str,,,,,,,,)
结束
打印@str
您可以在循环时执行此操作:
DECLARE @s NVARCHAR(200) = 'kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad'
WHILE @s LIKE '%,,%'
SET @s = REPLACE(@s, ',,', ',')
SELECT @s
您可以在循环时执行此操作:
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
使用以下命令:
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,}', ',')
我将使用CLR正则表达式替换。请在此处阅读更多信息:
然后称之为:
SELECT dbo.RegExReplace('kj,,,,,,,,,sdkdsd,das,das,,,,dasdasd,,,,,ad', ',{2,}', ',')
CLR对于如此简单的东西来说有点过头了。对于这样的东西来说可能有点过头了,但这可以在未来的开发中使用。除此之外,您以后也不必担心其他复杂的替换。对于如此简单的东西来说,CLR有点过头了。对于这样的东西来说,这可能有点过头了,但这可以在将来的开发中使用。除此之外,您以后也不必担心其他复杂的替换。