如何使用T-SQL从字符串中删除重复空间
我有一根像“你好,世界”这样的线。我使用下面的代码从字符串中删除重复的空格。但它会从字符串中删除如何使用T-SQL从字符串中删除重复空间,sql,sql-server,database,tsql,Sql,Sql Server,Database,Tsql,我有一根像“你好,世界”这样的线。我使用下面的代码从字符串中删除重复的空格。但它会从字符串中删除 SELECT ' Hello <> world ' AS Name INTO #Temp; SELECT REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(Name)), ' ', '<>'), '><', ''), '<>', ' ') AS CleanName FROM #Temp; 选择“Hello world”作
SELECT ' Hello <> world ' AS Name
INTO #Temp;
SELECT REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(Name)), ' ', '<>'), '><', ''), '<>', ' ') AS CleanName
FROM #Temp;
选择“Hello world”作为名称
进入#温度;
选择REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(Name)),'','>这项技术是可靠的,但如果您想保留
,则可以使用罕见的文本模式
示例
SELECT ltrim(rtrim(replace(replace(replace(Name,' ','†‡'),'‡†',''),'†‡',' ')))
FROM #Temp;
返回
Hello <> world
你好,世界
注意:ltrim(rtrim(…)
是可选的使用此表达式,它依赖于不可打印的ASCII字符:
SELECT REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(Name)),' ','CHAR(17)CHAR(18)'),'CHAR(18)CHAR(17)',''),'CHAR(17)CHAR(18)',' ') AS CleanName
FROM #Temp;
收益率:
Hello <> world
你好,世界
也许这可以帮助您:
declare @Name varchar(200)
select @Name = ' Hello <> world '
while charindex(' ',@Name)>0 select @Name=REPLACE(@Name,' ',' ')
select @Name
declare@Name varchar(200)
选择@Name='Hello world'
当charindex(“”,@Name)>0时,选择@Name=REPLACE(@Name,,“”)
选择@Name
@ SRM:不是重复的,您所指的问题将删除所有空间,而OP希望保留字符串中间的非重复空间。