sqlserver如何在字符串中间增加字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver如何在字符串中间增加字符相关的知识,希望对你有一定的参考价值。

比如我的数据是这样
AA133
AA134
AA135

如何才能在AA后边插入两个0,把数字补足5位?达到如下效果?语句应该怎么写
AA00133
AA00134
AA00135

直接用估计没有,可以定义一个函数转一下,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')
第二种情况可以先把字符串中的字母替换掉,然后再调用该函数,建议还是通过前端程序来处理字符串。
参考技术A 用Replace语句
例如:
Select Replace(AA133, 'AA', 'AA00') --AA133变为AA00133

以上是关于sqlserver如何在字符串中间增加字符的主要内容,如果未能解决你的问题,请参考以下文章

在sql server2000中,如何把整型字段转换成字符串型字段?

sqlserver查询字段里面如何去除空格

如何在sql server 数据库的字段加入回车符和换行符

请问SQL server 中如何更新字段

如何写sql 语句,能删除字段中某个字符到最后字符串的?

如何写sql 语句,能删除字段中某个字符到最后字符串的?