zoukankan      html  css  js  c++  java
  • SQLserver 存储过程生成任意进制/顺序流水号

    ALTER    PROCEDURE [dbo].[TentoSerial]
    @num int,
    @ret nvarchar(10) output
    AS

    declare @StringXL nvarchar(50)
    declare @CharXL nvarchar(10)
    declare @modnum int

    set @StringXL='0123456789ABCDEFGHJKLMNPRSTUVWXYZ'
    set @CharXL=''

    if @num>35936
        begin
            raiserror('流水号已超过上限35936',16,-1)
            return -1
        end
    if (@num<=32)
    begin
        set @CharXL=SUBSTRING(@stringxl,@num+1,1)
    end
    while @num>32
        begin
            set @modnum=@num%33
            set @num=@num/33
            set @CharXL=SUBSTRING(@stringxl,@modnum+1,1)+@CharXL
            if (@num<=32)
                begin
                    set @CharXL=SUBSTRING(@stringxl,@num+1,1)+@CharXL
                end
        end
    select @ret=right('000'+@CharXL,3)
    return 0

  • 相关阅读:
    Odd sum CodeForces
    Chips CodeForces
    Secrets CodeForces
    Voting CodeForces
    Jury Meeting CodeForces
    Planning CodeForces
    Maxim Buys an Apartment CodeForces
    Chemistry in Berland CodeForces
    Monitor CodeForces
    Four Segments CodeForces
  • 原文地址:https://www.cnblogs.com/leavind/p/3415420.html
Copyright © 2011-2022 走看看