declare @old varchar(10)
set @old='AA1Z99'select case when right(@old,1)<>'9' then left(@old,5)+cast(cast(right(@old,1) as int)+1 as varchar)
when right(@old,2)<>'99' then left(@old,4)+cast(cast(right(@old,2) as int)+1 as varchar)
when right(@old,3)<>'Z99' then left(@old,3)+char(ascii(substring(@old,4,1))+1)+'01'
when right(@old,4)<>'9Z99' then left(@old,2)+cast(cast(substring(@old,3,1) as int)+1 as varchar)+'A01'
when right(@old,5)<>'Z9Z99' then left(@old,1)+char(ascii(substring(@old,2,1))+1)+'0A01'
when @old<>'ZZ9Z99' then char(ascii(substring(@old,1,1))+1)+'A0A01'
else null --overflow
end as new
set @old='AA1Z99'select case when right(@old,1)<>'9' then left(@old,5)+cast(cast(right(@old,1) as int)+1 as varchar)
when right(@old,2)<>'99' then left(@old,4)+cast(cast(right(@old,2) as int)+1 as varchar)
when right(@old,3)<>'Z99' then left(@old,3)+char(ascii(substring(@old,4,1))+1)+'01'
when right(@old,4)<>'9Z99' then left(@old,2)+cast(cast(substring(@old,3,1) as int)+1 as varchar)+'A01'
when right(@old,5)<>'Z9Z99' then left(@old,1)+char(ascii(substring(@old,2,1))+1)+'0A01'
when @old<>'ZZ9Z99' then char(ascii(substring(@old,1,1))+1)+'A0A01'
else null --overflow
end as new
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货