Increment number portion of a text and number string
The following is an example of how to increment the number portion of a string when the string has a non-numeric prefix- i.e. 'ABC001234'declare @sInputNum varchar(100)
set @sInputNum = 'ABC003434'
print @sInputNum
-- trim any leading / training spaces
set @sInputNum = ltrim(rtrim(@sInputNum))
-- declare some work variables
declare @lInputLen int
, @lPrefixLen int
, @lNumberPart int
, @sPrefix varchar(100)
, @temp int
-- declare our output variable
declare @sOutput varchar(100)
-- get the input length
set @lInputLen = len(@sInputNum)
-- initialize our temp variable to be the input len
set @temp = @lInputLen
-- get the length of the string prefix
WHILE (@temp > 0 and isnumeric(substring(@sInputNum, @temp, 100)) = 1)
begin
-- keep decrementing our temp variable while we're still in the number part
set @temp = @temp - 1;
end
-- get the prefix length
if (@temp > 0)
begin
set @lPrefixLen = @temp
end else begin
set @lPrefixLen = 0
end
-- get the character prefix
set @sPrefix = substring(@sInputNum, 1, @lPrefixLen)
-- get the number part
set @lNumberPart = convert(int, substring(@sInputNum, @lPrefixLen + 1, 100))
-- increment the number part
set @lNumberPart = @lNumberPart + 1
-- initialize our output variable with the number part
set @sOutput = ltrim(rtrim(convert(varchar, @lNumberPart)))
-- calculate how many '0' characters we need to add in, if any
set @temp = @lInputLen - @lPrefixLen - len(@sOutput)
if (@temp > 0)
begin
-- prepend the '0' characters
set @sOutput = replicate('0', @temp) + @sOutput
end
-- add the prefix
set @sOutput = @sPrefix + @sOutput
SELECT NewNum = @sOutput
Last modified by Mohit @ 4/13/2025 7:52:23 PM