declare @int int
set @int=2
select substring('00',1,2-len(@int))++convert(varchar(2),@int)

解决方案 »

  1.   

    declare @i int
    select right("0"+convert(char(2),@i),2)
      

  2.   

    sorry
    写错了
    declare @i int
    select right("0"+convert(varchar(2),@i),2) 
      

  3.   

    declare @i int
    select right('0'+cast(@i as varchar(2)),2)  
      

  4.   

    各位处理的都很巧妙,但不知 cast和convert 哪个处理的快些?
    另外不用显式的转化,如  
    declare @i integer
    set @i='00’+1( 这样当然不行,我是举个例子了)
    能不能有什么技巧只使用这种隐式转化来解决我这问题
    隐式转化是不是比显式更快一点吧
      

  5.   

    现在发现新问题: 
     用单独使用上面几位的技巧没问题
    但要使用 print '12'+right('0'+cast(8 as varchar(2)),2) 不是出来‘1208’ 而是‘128’,如何解决呢
      

  6.   

    呵,刚才的问题是我的事务,类型转化用Varchar(2) 就好使了。马上就结贴了,再给点学习机会。