2011-12-20 13 views
0

私はこのようなIDを取得しています(StoredProcedureの最大ID) "100254A"(文字列)、 これで、文字列 "100254"と "A" 100254Bのような次の文字列を生成した後。 100255Aが来ます後のコードを書く方法 が100254Cように次の文字列を生成し、... 100254Zは、plsはasp.netの文字列番号と文字を分割する方法

をuに 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

使用substring機能をありがとう私にどんな提案を与えます。

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 
に役立つ、この希望を試します