大于99的两位编码问题

ajdkjalj 2018-09-26 01:44:38
现在有个编码字段要自己生成,只有两位,从01到99,大于99的100用1A,101用1B。。。直到1Z,然后再2A,2B。。。不考虑上限问题,这些编码够用了,但是用sql不知道怎么写
...全文
184 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2018-09-26
  • 打赏
  • 举报
回复

CREATE FUNCTION MyCode
(
	@num AS INT	
)
RETURNS VARCHAR(20)
AS
BEGIN
	DECLARE @Code VARCHAR(20),
			@n INT,
			@c CHAR(1)
	IF(@num<99)
		SET @Code=@num
	ELSE
		SELECT @n=(@num-99)/27+1;
		SELECT @c = CASE (@num -99)%26
		                 WHEN 1 THEN 'A'
		                 WHEN 2 THEN 'B'
		                 WHEN 3 THEN 'C'
		                 WHEN 4 THEN 'D'
		                 WHEN 5 THEN 'E'
		                 WHEN 6 THEN 'F'
		                 WHEN 7 THEN 'G'
		                 WHEN 8 THEN 'H'
		                 WHEN 9 THEN 'I'
		                 WHEN 10 THEN 'J'
		                 WHEN 11 THEN 'K'
		                 WHEN 12 THEN 'L'
		                 WHEN 13 THEN 'M'
		                 WHEN 14 THEN 'N'
		                 WHEN 15 THEN 'O'
		                 WHEN 16 THEN 'P'
		                 WHEN 17 THEN 'Q'
		                 WHEN 18 THEN 'R'
		                 WHEN 19 THEN 'S'
		                 WHEN 20 THEN 'T'
		                 WHEN 21 THEN 'U'
		                 WHEN 22 THEN 'V'
		                 WHEN 23 THEN 'W'
		                 WHEN 24 THEN 'X'
		                 WHEN 25 THEN 'Y'
		                 WHEN 0 THEN 'Z'
		            END 
		IF(@n<=9)		
			SET @Code=CONVERT (VARCHAR(20),@n)+@c
		
	RETURN @Code
END

SELECT dbo.myCode(126)

--------------------
2A

(1 行受影响)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧