Как разбить строковые числа и символы в asp.net - PullRequest
0 голосов
/ 20 декабря 2011

Я получаю идентификатор как это (максимальный идентификатор в Storedprocedure) "100254A" (это строка), Теперь я могу разделить строку "100254" и "A" после создания следующей строки, например, 100254B. как написать код сгенерировать следующие строки, такие как 100254C, ... 100254Z после 100255A будут приходить пожалуйста, дайте мне любое предложение

Спасибо тебе Hemanth

Ответы [ 3 ]

0 голосов
/ 20 декабря 2011

Может быть, это может помочь:

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
0 голосов
/ 20 декабря 2011

попробуйте эту надежду, это поможет Вам

  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
0 голосов
/ 20 декабря 2011

Используйте функцию подстрока .

...