fquiong 2021-02-26 10:04 采纳率: 100%
浏览 153
已采纳

写个存储过程,生成4位编码[A-Z][0-9]自动增长

4位编码都在[0-9][A-Z]的范围里生成,每一位都有36种变化可能。纯数字的简单,字母组合的按照以下写法,只能生成A001-ZZZZ范围内的编码,希望可以同时也生成如以下格式组合的编码0A01,0A02,....,0A99,....,0A01,0A02,....,0A99,....,
001A,002A,....,999A,....001Z,002Z,....,999Z,需要怎么修改才可以呢?
USE tempdb
GO

CREATE TABLE #Tmp1
(
    ID INT IDENTITY(1,1),
    samplecode VARCHAR(10)
)
  
    begin 
    DECLARE @CurrentCode VARCHAR(10) 
    SELECT @CurrentCode=MAX(samplecode)
        FROM #Tmp1
    if(@CurrentCode is null) set @CurrentCode='A000' 
    SELECT @CurrentCode= CASE WHEN RIGHT(@CurrentCode,3)='999' THEN CHAR(ASCII(LEFT(@CurrentCode,1))+1)+'0001'
                            ELSE LEFT(@CurrentCode,1) + RIGHT(REPLICATE('0',3) + RTRIM(CAST(STUFF(@CurrentCode,1,1,'') AS INT)+1),3) END 
INSERT INTO #Tmp1
        (  samplecode )
VALUES  ( @CurrentCode) 

    end

  • 写回答

2条回答 默认 最新

  • 规则边缘 2021-02-26 14:54
    关注

    这个就是36进制。取十进制的0~1679615,转为36进制。再左补0就行咯。MySQL的进制转换函数为CONV(N,from_base,to_base)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line