传给的参数有可能是3位,有可能5位,7位需要补齐10位,用0来补齐,求一个最好的方法最好一条SQL语句来补齐

解决方案 »

  1.   

    参数是字符串,可以用上面的答案
    如果是数字
    right('0000000000'+cast(参数 as varchar),10)
      

  2.   

    right(replicate('0',10)+ltrim(参数),10)
      

  3.   

    declare @i int =123select right(replicate('0',10)+ltrim(@i),10)
    /*
    --------------------
    0000000123(1 行受影响)
    */
      

  4.   

    alter PROCEDURE Smaple
    @num varchar(20)
    AS
    declare @str varchar(200)
    BEGIN

    IF len(@num)<10
    begin
    set @str='0000000000'+@str
    set @str=right(@str,10)
    print(@str)
    end
    END
    GO这不对吧
      

  5.   

    --如果是数值型,可以这样:
    declare @i int =123select right(1000000000+@i,10)
    /*
    --------------------
    0000000123(1 行受影响)
    */
      

  6.   


    alter PROCEDURE Smaple
    @num varchar(20)
    AS
    declare @str varchar(200)
    BEGINIF len(@num)<10
    begin
    set @str='0000000000'+@num
    set @str=right(@str,10)
    print(@str)
    end
    END