2011-12-20 112 views
0

我得到這樣的id(StoredProcedure中的最大ID)「100254A」(它是字符串), 現在我可以拆分字符串「100254」和「A」生成下一個字符串如100254B之後。 如何編寫代碼產生下一個字符串像100254C,... 100254Z後100255A將來臨請給我任何建議如何拆分asp.net中的字符串數字和字符

感謝ü hemanth

回答

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 @[email protected]+1 
    SET @letter=CHAR(65) 
END 
ELSE 
BEGIN 
    SET @letter=CHAR(ASCII(@letter)+1) 
END 

SELECT CAST(@number AS VARCHAR(100))[email protected] AS new 
SELECT @String AS old 
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 @[email protected] 
    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