'da sayı ve alfabe içeren işlevden iki karakter döndürür. Koşulu temel alarak iki karakter döndürecek bir işlev yapmak istiyorum., SQL
let ben bir tablo olduğunu varsayalım tbl_Dummy
CREATE TABLE [dbo].[tbl_Dummy](
[Id] [varchar](2) NOT NULL,
[Name] [varchar](30) NOT NULL
)
tbl_dummy içinde Id Max değeri 01 ise, o zaman 02 döndürür ve 09 geçer zaman böyle devam, o zaman til 0A döndürür 0Z, bundan sonra 10 ve benzeri dönecektir.
Bunu yapmış, ancak bu her zaman MAX(Id)
almanın
create FUNCTION dbo.GenerateValue()
RETURNS VARCHAR(250)
AS BEGIN
DECLARE @counter int = 1;
DECLARE @Work VARCHAR(2)
DECLARE @temp VARCHAR(2)
DECLARE @tempW VARCHAR(2)
declare @value int
select @Work = MAX(id) from tbl_Dummy
WHILE @counter <= DATALENGTH(@Work)
BEGIN
SELECT @temp = ASCII(SUBSTRING(@Work, @counter, 1))
SET @counter = @counter + 1
if @temp >= '48' and @temp <= '56' or @temp >= '65' and @temp <= '89'
begin
select @value = CONVERT(INT, @temp)
set @value = @temp + 1
end
else if @temp = '57'
set @value = 'A'
else if @temp = '90'
set @tempW = '0'
set @tempW += CHAR(ASCII(SUBSTRING(@Work, @counter, 1)))
END
RETURN @work
END