私はこのようなIDを取得しています(StoredProcedureの最大ID) "100254A"(文字列)、 これで、文字列 "100254"と "A" 100254Bのような次の文字列を生成した後。 100255Aが来ます後のコードを書く方法 が100254Cように次の文字列を生成し、... 100254Zは、plsはasp.netの文字列番号と文字を分割する方法
をuに hemanth
私はこのようなIDを取得しています(StoredProcedureの最大ID) "100254A"(文字列)、 これで、文字列 "100254"と "A" 100254Bのような次の文字列を生成した後。 100255Aが来ます後のコードを書く方法 が100254Cように次の文字列を生成し、... 100254Zは、plsはasp.netの文字列番号と文字を分割する方法
をuに hemanth
多分これは助けることができる:
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
使用substring機能をありがとう私にどんな提案を与えます。
それはあなた
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
に役立つ、この希望を試します