TSQLを使用して整数を同等の16進文字列に変換しようとしています
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
しかし、誰かがこれは少し奇妙に思えます。より良い方法はありますか?