首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何样把替换后的字符合并成新的字符串

2012-01-19 
怎么样把替换后的字符合并成新的字符串?Declare@StrVarchar(20)Declare@PostionIntSet@Str abcdefgh@Set@

怎么样把替换后的字符合并成新的字符串?
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就可以略去字符串中的非法字符啊。

热点排行
Bad Request.