mssql sqlserver 将一个十进制数字转换为二进制,不足位数时,左边补零


摘要:
下文讲述sqlserver技巧,将十进制数字转换为二进制,当位数不足时,左边补零,如下所示:
实验环境:sql server 2008 R2


实现思路:
1.将十进制数值转换为二进制
2.将二进制位数不足时,左边补零


例:

     ----1.新建十进制转换为二进制的自定义函数
      create function fn__IntToBit(@t int)
/*
函数功能:十进制转换为二进制方法分享
*/
returns varchar(300)
as
begin

    declare @info varchar(300);
    set @info=''
    while (@t>0)
    begin
        select @info=cast(@t%2 as varchar)+@info,@t=@t/2
    end 

    return(@info)
end
go

 -----2.采用right对数值不足位数,进行补齐
 ---例:返回10的二进制, 不足8位,对其进行补零操作
   declare  @formatExtend varchar(10)
    set @formatExtend  ='00000000'

     set     @str = @formatExtend +dbo.fn__IntToBit(10)
    ---输出结果 
    select  right(@str,10); --从右边获取8个字符串