0

希望使用 TSQL 将整数转换为等效的十六进制字符串

1 =    1
10 =   A
100 = 64
1000 = 3E8

等等

到目前为止,解决方案似乎是

DECLARE @str VARCHAR(10)
SELECT @str = sys.fn_varbintohexstr(CONVERT(VARBINARY, @num))
IF @num < 16
   SELECT @str = RIGHT(@str, 1)
ELSE IF @num < 256
   SELECT @str = RIGHT(@str, 2)
ELSE IF @num < 4096
   SELECT @str = RIGHT(@str, 3)
ELSE -- and so on
   SELECT @str = RIGHT(@str, 4)

RETURN @str

但是有人这似乎有点笨拙,有没有更好的方法?

4

0 回答 0