我得到这样的id(Storedprocedure中的最大ID)“100254A”(它是字符串), 现在我可以在生成下一个字符串(如100254B)之后拆分字符串“100254”和“A”。 如何编写代码生成下一个字符串,如100254C,... 100255Z之后的100254Z 将会给我任何建议
谢谢你 hemanth
答案 0 :(得分:0)
使用substring功能。
答案 1 :(得分:0)
也许这会有所帮助:
DECLARE @String VARCHAR(200)
SET @String = '100254E'
DECLARE @number INT,
@letter VARCHAR(5)
SET @number = CAST(LEFT(@String, LEN(@String) - 1) AS INT)
SET @letter= SUBSTRING(@String,LEN(@String), LEN(@String))
--Check if it is Z
IF(ASCII(@letter)=90)
BEGIN
SET @number=@number+1
SET @letter=CHAR(65)
END
ELSE
BEGIN
SET @letter=CHAR(ASCII(@letter)+1)
END
SELECT CAST(@number AS VARCHAR(100))+@letter AS new
SELECT @String AS old
答案 2 :(得分:0)
试试这个希望它会帮助你
declare @temvalue varchar(50)
declare @givenvalue varchar(50)
set @givenvalue ='100254A'
set @temvalue= substring(@givenvalue,len(@givenvalue),1)
set @givenvalue=substring(@givenvalue,0,len(@givenvalue))
declare @tableid int
while ASCII(@temvalue)<=90
begin
set @tableid=ASCII(@temvalue)
declare @data varchar(1)
set @data=CHAR(@tableid)
print @givenvalue+@data
if @givenvalue <>'100257' -- UP TO THIS IT WILL generate STRING
begin
if @tableid=90
begin
set @givenvalue= CAST(cast(@givenvalue as int)+1 as varchar(50))
set @tableid=64
end
end
set @tableid+=1
set @temvalue=CHAR(@tableid)
end