我有這個腳本,我通過從第一個和最後一個名字中取一些字符創建一個ID,如果該組合已經存在,則添加1。我很確定我很接近,但我的問題是這樣的。 如果名字Sully Joan被輸入,我需要得到SULJ0002(2,因爲有這個名字的人已經進入了,下一個人將是SulJ0003)。 我的問題是,在將數字轉換爲數字後返回數字並添加1後,我返回'2',我試圖設計一種方法來取回'0002',而不對前三個零進行硬編碼。將零添加到varchar
DECLARE @stid varchar(12)
DECLARE @amt varchar(12)
DECLARE @tempsid varchar(12)
DECLARE @newid varchar(12)
SELECT @stid=SUBSTRING('Sully',1,3)+SUBSTRING('Joan',1,1)+'0'
set @amt=(SELECT top 1 studentid FROM studentinfo WHERE studentid LIKE
@stid+'%' order by studentid desc)
IF COUNT(@AMT)=1
begin
Set @tempsid = (select CAST(SUBSTRING(@AMT,6,5)AS NUMERIC(12))+1);
set @newid=REPLACE(@tempsid,'','0')
end
ELSE
begin
set @tempsid='00001';
end
select @tempsid
SELECT @newid
這是我使用。 – SQLburn 2015-04-02 19:36:04