0

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

しかし、誰かがこれは少し奇妙に思えます。より良い方法はありますか?

4

0 に答える 0