我使用的方法比较笨, 先判断整形数有多大,然后再决定在它前面加多少个"0",
if @n< 10 
 select str = '0000' + Cast(@n as varchar(1))
else if @n<100
 select str = '000' + Cast(@n as varchar(2))
else if @n < 1000
 select str = '00' + Cast(@n as varchar(3))
..... 感觉SQL 下面,应该有类似于格式化字符串的语句,可是只找到了 Format_String 这个单词,却不会使用..

解决方案 »

  1.   

    declare @s varchar(10)
    set @s='32'
    select right('00000'+@s,6)
      

  2.   

    declare @s varchar(10) 
    set @s='32' 
    select right('00000'+@s,6),right(replicate('0',6)+@s,6)
      

  3.   

    declare @n int
    set @n='32' 
    select right(100000+@n,5)/*----------
    00032(1 row(s) affected)
    */
      

  4.   

    这么快啊,谢谢啦,有点像delphi 下的 rightStr('0000' + str, 6);
      

  5.   

    select right(100000+32,5), right(100000+126,5)/*---------- ----------
    00032      00126(1 row(s) affected)
    */