Ich möchte eine Funktion machen, die zwei Zeichen basierend auf der Bedingung zurückgibt.geben Sie zwei Zeichen aus der Funktion mit Zahlen und Alphabet in SQL zurück
sagen wir mal ich einen Tisch haben tbl_Dummy
CREATE TABLE [dbo].[tbl_Dummy](
[Id] [varchar](2) NOT NULL,
[Name] [varchar](30) NOT NULL
)
wenn Max Wert von Id in tbl_dummy 01 ist, dann kehrt er 02, und so weiter, wenn es um die 09 geht, dann gibt es 0A til 0Z, danach 10 und so weiter.
Ich habe dies getan, aber das funktioniert nicht in meinem scenerio
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