希望使用 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
但是有人这似乎有点笨拙,有没有更好的方法?