为什么不同的功能输出取代?

时间:2013-11-06 09:27:31

标签: sql replace

declare @tachareName varchar(200)
        ,@a varchar
set @tachareName='fsfhk,fsif,'
if(CHARINDEX(',',@tachareName)!=0)              
    --print @tachareName
    --select REPLACE(@tachareName,',',' ')--The output is:fsfhk fsif 
    set @a=REPLACE(@tachareName,',',' ')
    --REPLACE(@tachareName,',',' ')
    print @a    --The output is:f

出了什么问题,我想判断字符串是否有',''符号'并将其替换为''。

环境是SQL Server 2008。

1 个答案:

答案 0 :(得分:2)

由于您声明了@a - 您没有声明变量的长度,因此它默认为1.因此只返回结果的第一个字母。

@a声明为:

declare @a varchar(200)

详细了解MSDN上的charvarchar声明。