sqlserver如何在字符串中间增加字符 50
比如我的数据是这样AA133AA134AA135如何才能在AA后边插入两个0,把数字补足5位?达到如下效果?语句应该怎么写AA00133AA00134AA00135...
比如我的数据是这样
AA133
AA134
AA135
如何才能在AA后边插入两个0,把数字补足5位?达到如下效果?语句应该怎么写
AA00133
AA00134
AA00135 展开
AA133
AA134
AA135
如何才能在AA后边插入两个0,把数字补足5位?达到如下效果?语句应该怎么写
AA00133
AA00134
AA00135 展开
2个回答
展开全部
直接用估计没有,可以定义一个函数转一下,MSSQL中有个stuff函数
在指定位置替换或增加字符,比如:
SELECT STUFF('12345678', 2, 3, 'abc')
SELECT STUFF('12345678', 2, 0, ':')
但只能插入一个位置。
建议自定义一个字符串处理函数,然后在语句中调用吧
比如
create function dbo.fn_setColon (
@oldstr varchar(4000) )
returns varchar(4000)
as
begin
declare @outstr varchar(4000)
set @outstr=''
while (len(@oldstr)>2)
begin
set @outstr=@outstr+left(@oldstr,2)+':'
set @oldstr=right(@oldstr, len(@oldstr)-2)
end
if @oldstr<>''
begin
set @outstr=@outstr+@oldstr
end
return @outstr
end
select dbo.fn_getColon('123456789')
第二种情况可以先把字符串中的字母替换掉,然后再调用该函数,建议还是通过前端程序来处理字符串。
在指定位置替换或增加字符,比如:
SELECT STUFF('12345678', 2, 3, 'abc')
SELECT STUFF('12345678', 2, 0, ':')
但只能插入一个位置。
建议自定义一个字符串处理函数,然后在语句中调用吧
比如
create function dbo.fn_setColon (
@oldstr varchar(4000) )
returns varchar(4000)
as
begin
declare @outstr varchar(4000)
set @outstr=''
while (len(@oldstr)>2)
begin
set @outstr=@outstr+left(@oldstr,2)+':'
set @oldstr=right(@oldstr, len(@oldstr)-2)
end
if @oldstr<>''
begin
set @outstr=@outstr+@oldstr
end
return @outstr
end
select dbo.fn_getColon('123456789')
第二种情况可以先把字符串中的字母替换掉,然后再调用该函数,建议还是通过前端程序来处理字符串。
2019-03-07
展开全部
用Replace语句
例如:
Select Replace(AA133, 'AA', 'AA00') --AA133变为AA00133
例如:
Select Replace(AA133, 'AA', 'AA00') --AA133变为AA00133
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询