create procedure  test1 @a int,@b varchar(100) output
as
beginset @b=''
while @a<>0
select @b=@b+rtrim(@a%2),@a=@a/2
set @b=reverse(@b)
return @b
enddeclare @e varchar(100)exec test1 '64',@e outputselect @e

解决方案 »

  1.   

    create procedure  test1 @a int,@b varchar(100) output
    as
    beginset @b=''
    while @a<>0
    select @b=@b+rtrim(@a%2),@a=@a/2
    set @b=reverse(@b)
    return @b
    enddeclare @e varchar(100)exec test1 '64',@e outputselect @e
      

  2.   

    declare @I int,@VarcharI Varchar(100)
    set @i=100
    set @VarcharI=''
    while 1=1
    begin
    set @VarcharI=cast(@i%2 as varchar)+@VarcharI
    set @i=@i/2
    if @i=0 
    BREAK
    end
    select @VarcharI
    -------------------
    1100100