我想把不满5位的数字在前面用0补足,比如1转化成0001,2转化成0002。用asp或者sql函数该怎么写
谢谢。

解决方案 »

  1.   

    <%
    i=你要转换的数字
    if i<10 then
     a="000"+cstr(i)
    elseif i<100 then
     a="00"+cstr(i)
    elseif i<1000 then
     a="0"+cstr(i)
    else
      a=cstr(i)
    end if a是你想要的数字
    %>
      

  2.   

    select '000'+cast(数字 as char(10))
      

  3.   

    declare @str varchar(20)
    declare @num int
    set @num=34
    set @str=cast(@num as varchar(20))
    if (len(@str)<5)
    begin
     set @str=substring('00000',1,5-len(@str))+@str
    end
    print(@str)
      

  4.   

    利用Space 函数补空格,再替换成0这样比较简单。
    本示例使用 Space 函数来生成一个字符串,字符串的内容为空格,长度为指定的长度。Dim MyString
    ' 返回 10 个空格的字符串。
    MyString = Space(10)' 将 10 个空格插入两个字符串中间。
    MyString = "Hello" & Space(10) & "World"
      

  5.   

    declare @i int
    set @i = 1
    select right(cast(100000 + @i as varchar),5)
      

  6.   

    set @NewAmountUnitNo1='JL'+space(5-len(ltrim(str(Convert(int,substring(@AmountUnitNo1,3,5))+1))))+ltrim(str(Convert(int,substring(@AmountUnitNo1,3,5))+1))
    set @NewAmountUnitNo1=replace(@NewAmountUnitNo1,' ','0')
      

  7.   

    若是数值型,补0也没用,字符型可以:
    right('00000'+@str,5)//@str为你要补0的字符串
      

  8.   


    create function f_adds(@num int,@len int )
    returns varchar(20)
    as 
    begin
    declare @s varchar(20)
    set @s=right(replicate('0',@len)+ltrim(cast(@num as varchar(20))),@len)
    return @s
    end 
    ---
    ---@len 表示字符串的长度
    select dbo.f_adds(34,5)
    --结果 '00034'
      

  9.   

    stuff('0000',num1,num2,string2)
    num1从第几位开始转换
    num2转换几位
    string2,要转换的字符串
    如果不定数字的话,可以取要转换的数字,用len()得到位数
    num1:5-len(num)
    num2:len(num)
    string2:num
      

  10.   

    用我的方法吧,这样最简单
    declare @a int 
    select @a=100  --@a 为你要转换的数字
    select right(cast(100000+@a as varchar),5)
      

  11.   

    create function 得到字符编号(@a int)
    returns char(4)
    as
    begin
    return right(cast(10000+@a as char(5)),4)
    end----调用:
    select dbo.得到字符编号(1)
    select dbo.得到字符编号(45)
    select dbo.得到字符编号(100)select dbo.得到字符编号(你的int列名) from 你的表
      

  12.   

    create function itos5 (@a int)
    returns char(5)
    as
    begin
    return right(cast(100000 + @i as varchar),5)
    end
      

  13.   

    我在MSSQL中用这样的方法:
    select replace(str(1,5,0),' ','0')
    可以得到'00001'