SQL 10进制转16进制 求解释
问题描述:
SQL 10进制转16进制 求解释
在调查使用SQL进行10进制转35进制转化的资料时,找到如下SQL文。
经过运行确实能成转化,但小弟才疏学浅实在看不懂原理,请教各位大神帮忙解释一下
重要步骤的原理或目的。
谢谢!!!!!!!
DECLARE @BASE_35 VARCHAR(100)
DECLARE @BASE_10 INT
SET @BASE_10 = '88'
SET @BASE_35=N''
SELECT
@BASE_35 =
CASE WHEN
@BASE_10%35 BETWEEN 10 AND 34
THEN
CHAR(@BASE_10%35+55)
ELSE
CAST(@BASE_10%35 AS VARCHAR)
END + @BASE_35,@BASE_10 = @BASE_10/35
FROM
(
SELECT
NUMBER
FROM
MASTER.DBO.SPT_VALUES
WHERE
TYPE=N'P'AND NUMBER<10
) AS A
ORDER BY NUMBER DESC
SELECT @BASE_35
答
DECLARE @BASE_35 VARCHAR(100)
DECLARE @BASE_10 INT ---------定义int类型参数
SET @BASE_10 = '88'---------------赋值
SET @BASE_35=N''
SELECT
@BASE_35 =
CASE WHEN----------------判断
@BASE_10%35 BETWEEN 10 AND 34----------判断取的余数范围是否在10到34之间
THEN
CHAR(@BASE_10%35+55)-----------是根据ascii 转换成A到T之间的字符
ELSE
CAST(@BASE_10%35 AS VARCHAR)--------之间转换成ascii的字符0到9
END + @BASE_35,@BASE_10 = @BASE_10/35
FROM----------
(--------------------这里sql语句查询
SELECT
NUMBER
FROM
MASTER.DBO.SPT_VALUES
WHERE
TYPE=N'P'AND NUMBER<10
) AS A
ORDER BY NUMBER DESC