日期:2014-05-18  浏览次数:20674 次

SQL——完全匹配替换字符串
SQL code

declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'


set @str=REPLACE(@str,'单位A','单位B')

select @str as str

--结果 
@str=单位B,单位BA,单位BAA


--实际想要的结果
@str=单位B,单位AA,单位BAA




各位棒棒忙...

------解决方案--------------------
SQL code
declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'


set @str=REPLACE(@str,'单位A,','单位B,')

select @str as str
/*
str
单位B,单位AA,单位AAA
*/

------解决方案--------------------
declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'


set @str=REPLACE(@str,'单位A','单位B')

set @str=REPLACE(@str,'单位BA,','单位AA,')

select @str as str

------解决方案--------------------
SQL code
declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'

set @str=REPLACE(','+@str+',',','+'单位A'+',',','+'单位B'+',')
set @str=stuff(left(@str,len(@str)-1),1,1,'')

select @str as [str]

------解决方案--------------------
探讨

SQL code
declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'

set @str=REPLACE(','+@str+',',','+'单位A'+',',','+'单位B'+',')
set @str=stuff(left(@str,len(@str)-1),1,1,'')

select @str as [str]

------解决方案--------------------
主要有二种情况
末尾是 单位A
字符串是空

SQL code

declare @str nvarchar(100)
set @str='单位A,单位AA,单位A'
select len(replace(@str+',','单位A,','单位B,'))
select left(replace(@str+',','单位A,','单位B,'),len(replace(@str+',','单位A,','单位B,'))-1)

------解决方案--------------------
探讨
SQL code

declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'


set @str=REPLACE(@str,'单位A','单位B')

select @str as str

--结果
@str=单位B,单位BA,单位BAA

--实际想要的结果
@str=单位B,单位AA,单位BAA


各位棒棒忙...

------解决方案--------------------
SQL code

declare @str nvarchar(100)
set @str='单位A,单位AA,单位AAA'


set @str=REPLACE(@str + ',','单位A' + ',','单位B' + ',')

SELECT LEFT(@str,LEN(@str) - 1)