SQL 10进制转16进制 求解释

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