首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

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

原理說明

  • 每次取 @BASE_10 % 35 的餘數,對應一個三十五進位字元。
  • 餘數 10~34 轉換為字母 A~Y(透過 CHAR(餘數+55))。
  • 將 @BASE_10 除以 35 繼續下一位,直到商為 0。
  • 透過 ORDER BY NUMBER DESC 從高位到低位拼接結果字串。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved