1
我想要根据条件返回两个字符的函数。从SQL中包含数字和字母的函数返回两个字符
让说我有一个表tbl_Dummy
CREATE TABLE [dbo].[tbl_Dummy](
[Id] [varchar](2) NOT NULL,
[Name] [varchar](30) NOT NULL
)
如果tbl_dummy Id的最大值为01,则返回02,依此类推,当它传到09,然后返回0A直到0Z,之后它将返回10,依此类推。
我已经这样做了,但这不是我之情况的工作,每次得到MAX(Id)
的
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