首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

问select一个bigint,如若转换16进制字符输出

2013-07-01 
问select一个bigint,如果转换16进制字符输出?表table,有一个字段bigint a,我想用select语句把字段a用一串1

问select一个bigint,如果转换16进制字符输出?
表table,有一个字段bigint a,我想用select语句把字段a用一串16进制字符串输出,怎么怎么写?谢谢。
[解决办法]

create function inttohex(@i bigint) 
returns varchar(15) 
begin 

 

declare @r varchar(15) 
set @r='' 


while @i/16>0 
begin 


set @r= 
(case 
when (@i % 16)<=9 then convert(varchar(1),@i % 16) 
when (@i % 16)=10 then 'A' 
when (@i % 16)=11 then 'B' 
when (@i % 16)=12 then 'C' 
when (@i % 16)=13 then 'D' 
when (@i % 16)=14 then 'E' 
when (@i % 16)=15 then 'F' 
end) +@r  
set @i=@i/16 


end 
 

if @i>0 
set @r=(case 
when (@i % 16)<=9 then convert(varchar(1),@i % 16) 
when (@i % 16)=10 then 'A' 
when (@i % 16)=11 then 'B' 
when (@i % 16)=12 then 'C' 
when (@i % 16)=13 then 'D' 
when (@i % 16)=14 then 'E' 
when (@i % 16)=15 then 'F' 
end)+ @r 
 


return @r 


end 
go


select dbo.inttohex(123456789)
返回:
75BCD15
select dbo.inttohex(256)
返回:
100
[解决办法]

DECLARE @a BIGINT=123456789
SELECT stuff(master.dbo.fn_varbintohexstr(cast(@a as varbinary(6))),1,2,'')

热点排行