sql 替换字段中的某个字符
在该字段中存在了两个A,但我只想替换第4个A为B,而保留第一个A,如何语句实现呢?用到left和right的话还是从两边开始,我就是想要取中间的,但又不涉及两边的方法。...
在该字段中存在了两个A,但我只想替换第4个A为B,而保留第一个A,如何语句实现呢?
用到left和right的话还是从两边开始,我就是想要取中间的,但又不涉及两边的方法。 展开
用到left和right的话还是从两边开始,我就是想要取中间的,但又不涉及两边的方法。 展开
1个回答
展开全部
以 AxxxxA 为例,把替换其中第二个A为B,保留第一个
使用时,把'AxxxxA替换成你的列名就可以了。
select left('AxxxxA',CharIndex('A','AxxxxA'))+
replace(right('AxxxxA',len('AxxxxA')-CharIndex('A','AxxxxA')),'A','B')
------ -------------------
如果经常用,建议做成function
--建立一个叫a2b的function
CREATE FUNCTION [dbo].[A2B](@f varchar(20)) RETURNS varchar(20)
AS
BEGIN
DECLARE @result varchar(20)
select @result = left(@f,CharIndex('A',@f))+ replace(right(@f,len(@f)-CharIndex('A',@f)),'A','B')
RETURN @result
END
GO
--function的使用方法
select dbo.a2b('xAxA')
使用时,把'AxxxxA替换成你的列名就可以了。
select left('AxxxxA',CharIndex('A','AxxxxA'))+
replace(right('AxxxxA',len('AxxxxA')-CharIndex('A','AxxxxA')),'A','B')
------ -------------------
如果经常用,建议做成function
--建立一个叫a2b的function
CREATE FUNCTION [dbo].[A2B](@f varchar(20)) RETURNS varchar(20)
AS
BEGIN
DECLARE @result varchar(20)
select @result = left(@f,CharIndex('A',@f))+ replace(right(@f,len(@f)-CharIndex('A',@f)),'A','B')
RETURN @result
END
GO
--function的使用方法
select dbo.a2b('xAxA')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |