如何在asp.net中拆分字符串数字和字符

时间:2011-12-20 12:45:06

标签: sql-server-2008 c#-4.0 asp.net-4.0

我得到这样的id(Storedprocedure中的最大ID)“100254A”(它是字符串), 现在我可以在生成下一个字符串(如100254B)之后拆分字符串“100254”和“A”。 如何编写代码生成下一个字符串,如100254C,... 100255Z之后的100254Z 将会给我任何建议

谢谢你 hemanth

3 个答案:

答案 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
相关问题