怎么样把替换后的字符合并成新的字符串?
Declare @Str Varchar(20)
Declare @Postion Int
Set @Str= 'abcdefgh@ '
Set @postion=1
While @Postion <DATALENGTH(@Str)+1
Begin
Select Replace(SUBSTRING(@Str,@Postion,1), '@ ', ' ')
Set @Postion=@Postion+1
End
可以把@替换掉,但是我在我合并的时候却市NULL.
------解决方案--------------------Declare @Str Varchar(20)
Declare @Postion Int
Set @Str= 'abcdefgh@ '
Set @postion=1
declare @re varchar(20)
set @re = ' '
While @Postion <DATALENGTH(@Str)+1
Begin
Select @re = @re + Replace(SUBSTRING(@Str,@Postion,1), '@ ', ' ')
Set @Postion=@Postion+1
End
Select @re
------解决方案--------------------不过, 直接 replace 不就行了吗? 干嘛用循环?
Declare @Str Varchar(20)
Set @Str= 'abcdefgh@ '
select replace(@str, '@ ', ' ')
-- 结果: abcdefgh
------解决方案-------------------- Declare @Str Varchar(20)
Declare @Postion Int
Declare @NewStr varchar(20)
set @newstr= ' '
Set @Str= 'abcdefgh@ '
Set @postion=1
While @Postion <DATALENGTH(@Str)+1
Begin
if substring(@Str,@postion,1) <> '@ '
set @NewStr=@NewStr+substring(@Str,@postion,1)
set @Postion=@postion+1
End
select @Newstr
---
abcdefgh
------解决方案--------------------是啊,为什么用循环?replace就可以略去字符串中的非法字符啊。