declare @CaseValue varchar;
set @CaseValue='390,398';
set @CaseValue=replace(@CaseValue,',',''',''')
select @CaseValue
运行结果居然3,不知道哪里错了?
楼上的指出了一个问题,MSSQL在声明变量的时候,需要声明变量的长度,否则会默认长度为1.
另外一个问题:看你的题目是想把单引号去掉或者是替换掉,但是你的SQL好像是替换逗号吧,下面SQL或许可以帮到你:
declare @CaseValue varchar(50);
set @CaseValue='390,398';
set @CaseValue=replace(@CaseValue,'''','')
select @CaseValue
欢迎讨论。
varchar[(n|max)]数据类型为可变长度,非Unicode字符数据,n的取值范围为1~8000,max指示最大存储大小是2的31次幂减1,故在数据项的大小差异很大时使用max。
对于你的问题:声明数据类型时应确定varchar的最大长度。例如:varchar(max)