ACCESS/SQL SERVER保存軟件版本號為整數類型,轉成字符串

在 Access 中,若已將版本號(如1.3.15)轉換為整數形式(如10315,即1*10000 + 3*100 + 15),可以通過 SQL 的數學運算反向解析出原始版本號格式(主版本.次版本.修訂號)。

實現思路

通過除法和取余運算拆分整數:

  • 主版本號:整數除以10000的商(整數部分)
  • 次版本號:整數除以10000的余數,再除以100的商
  • 修訂號:整數除以100的余數

SQL 查詢示例

假設表名為SoftwareVersions,存儲整數版本號的字段為NumericVersion,則查詢語句如下:

SELECT NumericVersion,-- 主版本號:除以10000取整數部分Int(NumericVersion / 10000) AS Major,-- 次版本號:先取除以10000的余數,再除以100取整數部分Int((NumericVersion Mod 10000) / 100) AS Minor,-- 修訂號:取除以100的余數NumericVersion Mod 100 AS Patch,-- 拼接為原始版本號格式(如1.3.15)Int(NumericVersion / 10000) & "." & Int((NumericVersion Mod 10000) / 100) & "." & (NumericVersion Mod 100) AS VersionText
FROM SoftwareVersions;

說明

  1. 運算邏輯

    • Int(NumericVersion / 10000):提取主版本(如10315 / 10000 = 1.0315,取整數得1
    • NumericVersion Mod 10000:先獲取10315 - 1*10000 = 315,再除以100取整數得3(次版本)
    • NumericVersion Mod 100:直接獲取10315除以100的余數15(修訂號)
  2. 拼接格式

    • 使用&符號連接字符串(Access 中字符串拼接運算符為&,而非 SQL Server 的+
    • 最終得到1.3.15格式的版本號文本
  3. 適用范圍

    • 僅適用于按主版本*10000 + 次版本*100 + 修訂號規則轉換的整數版本號
    • 若版本號規則變更(如基數調整為 1000),需同步修改除數(如10000001000等)

通過上述 SQL,可直接從整數形式反向解析出易讀的版本號格式,方便查詢和展示。


進階方案:拆分字段法(多 INT 字段)

1. 實現邏輯

將版本號拆分為主、次、修訂號字段,直接按數值排序:

CREATE TABLE SoftwareVersions (Id INT PRIMARY KEY,Major INT NOT NULL,Minor INT NOT NULL,Patch INT NOT NULL,INDEX IX_Version NONCLUSTERED (Major, Minor, Patch)
);
2. 插入與排序示例sql
-- 插入數據
INSERT INTO SoftwareVersions (Major, Minor, Patch)
VALUES (1, 3, 5),(1, 3, 51);-- 按版本號升序查詢
SELECT CONCAT(Major, '.', Minor, '.', Patch) AS Version
FROM SoftwareVersions 
ORDER BY Major, Minor, Patch;
-- 結果:1.3.5 → 1.3.51

3. 優點與注意事項

  • 優點:排序最準確,適合復雜版本號(如包含預發布標識)。
  • 注意事項:增加表字段數量,需維護字段間一致性。

數值轉換法(INT/BIGINT 存儲)

1. 實現邏輯

將版本號各部分乘以基數的冪次后相加:

-- 公式:major * 1000000 + minor * 1000 + patch
DECLARE @version NVARCHAR(20) = '1.3.51';
SELECT CAST(PARSENAME(@version, 3) AS INT) * 1000000 +CAST(PARSENAME(@version, 2) AS INT) * 1000 +CAST(PARSENAME(@version, 1) AS INT) AS NumericVersion;
-- 輸出:10351

2. 表結構設計

CREATE TABLE SoftwareVersions (Id INT PRIMARY KEY,Version NVARCHAR(20) NOT NULL,NumericVersion INT NOT NULL,  -- 存儲轉換后的數值INDEX IX_NumericVersion NONCLUSTERED (NumericVersion)
);
插入與排序示例sql
-- 插入數據
INSERT INTO SoftwareVersions (Version, NumericVersion)
VALUES ('1.3.5', 10305),('1.3.51', 10351);-- 按版本號升序查詢
SELECT Version 
FROM SoftwareVersions 
ORDER BY NumericVersion;
-- 結果:1.3.5 → 1.3.51

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93801.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93801.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93801.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

編程語言學習

精通 Java、Scala、Python、Go、Rust、JavaScript ? 1. Java 面向對象編程(OOP)、異常處理、泛型JVM 原理、內存模型(JMM)、垃圾回收(GC)多線程與并發(java.util.concurrent)Java 8…

軟件測試:如何利用Burp Suite進行高效WEB安全測試

Burp Suite 被廣泛視為 Web 應用安全測試領域的行業標準工具集。要發揮其最大效能,遠非簡單啟動掃描即可,而是依賴于測試者對其模塊化功能的深入理解、有機組合及策略性運用。一次高效的測試流程,始于精細的環境配置與清晰的測試邏輯。測試初…

華為認證 HCIA/HCIP/HCIE 全面解析(2025 版)

說實話,想在IT行業站穩腳跟,沒有過硬的技術和資歷,光憑熱情和一腔干勁根本不行。 而華為認證,作為業內公認的“技術護照”,已經成了許多人打開職場大門的關鍵。 你會發現,越來越多的企業在招聘時&#xff0…

ComfyUI-3D-Pack:3D創作的AI神器

一、應用介紹 單圖轉3D網格:輸入一張角色圖,能輸出基本成型的3D Mesh,還自帶UV展開和貼圖輸出,可直接導入到Blender等軟件中使用。多視角圖像生成:可以基于算法生成圍繞3D模型的多視角圖像,用于3D模型展示…

【java面試day15】mysql-聚簇索引

文章目錄問題💬 Question 1💬 Question 2相關知識問題 💬 Question 1 Q:什么是聚簇索引,什么是非聚簇索引? A:聚簇索引主要是指數據與索引放到一塊,B樹的葉子節點保存了整行數據&a…

【typenum】 16 無符號整數標記

一、源碼 這段代碼是 Rust 中用于實現編譯時無符號整數的核心部分。它定義了一個 Unsigned trait 并為兩種類型實現了該 trait&#xff1a;UTerm&#xff08;表示零&#xff09;和 UInt<U, B>&#xff08;表示非零數字&#xff09;。 定義&#xff08;marker_traits.rs&a…

重溫k8s基礎概念知識系列四(服務、負載均衡和聯網)

文章目錄1、Kubernetes 網絡模型2、為什么需要 Service&#xff1f;2.1、定義service2.2、Service的類型2.3、Service 工作原理2.4、Service 與 DNS3、Ingress&#xff08;高級流量管理&#xff09;3.1、定義Ingress 資源3.2、Ingress 規則4、常見面試高頻問答5、總結1、Kubern…

基于SpringBoot的停車場管理系統【2026最新】

作者&#xff1a;計算機學姐 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源碼”。 專欄推薦&#xff1a;前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄&#xff1a;…

Nginx前后端分離反代(VUE+FastAPI)

原文鏈接&#xff1a;Nginx前后端分離反代&#xff08;VUEFastAPI&#xff09; < Ping通途說 0.前言 工作需求自己全棧開發了一個后臺后端&#xff0c;要求前后端分離&#xff0c;即nginx靜態代理前端文件&#xff0c;再代理后端接口。以前自己也遇過這種情況&#xff0c;但…

豆包1.5 Vision Lite 對比 GPT-5-min,誰更適合你?實測AI模型選型利器 | AIBase

“團隊要上線一個智能客服系統&#xff0c;預算有限&#xff0c;中文場景為主&#xff0c;偶爾需要讀圖——該選豆包1.5還是GPT-5-min&#xff1f;” “個人開發者想接大模型API做寫作助手&#xff0c;要求響應快、成本低&#xff0c;Claude Haiku、Moonshot、GPT-5-min 哪個更…

Swift與C++混編深度解決方案:手動橋接 vs SwiftyCPP框架性能終極評測

Swift與C混編深度解決方案&#xff1a;手動橋接 vs SwiftyCPP框架性能終極評測一、技術背景與行業痛點1.1 Swift與C互操作現狀1.2 行業痛點數據二、解決方案架構對比2.1 手動橋接OC中間層實現細節&#xff1a;2.2 SwiftyCPP自動框架技術突破&#xff1a;三、性能深度評測3.1 測…

[Oracle數據庫] Oracle 常用函數

目錄 一、先搞懂這些基礎約定 二、數值函數&#xff1a;處理數字的 “小幫手” 1??MOD (n1, n2)&#xff1a;取余數 2??ROUND (n1 [, n2])&#xff1a;四舍五入 3??TRUNC (n1 [, n2])&#xff1a;截斷&#xff08;不四舍五入&#xff09; 其他常用數值函數 三、字…

Pytorch模型復現筆記-STN(空間注意力Transformer網絡)講解+架構搭建(可直接copy運行)+ MNIST數據集視角調整實驗

Spatial Transformer Networks 本文了講述STN的基本架構&#xff0c;空間幾何注意力模塊的基本原理&#xff0c;冒煙測試以及STN在MNIST數據集用于模型自動調整圖片視角的實驗&#xff0c;如果大家有不懂或者發現了錯誤的地方&#xff0c;歡迎討論。 中文名&#xff1a;空間Tra…

【LeetCode】16. 最接近的三數之和

文章目錄16. 最接近的三數之和題目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a;解題思路算法分析問題本質分析排序雙指針法詳解雙指針移動策略搜索過程可視化各種解法對比算法流程圖邊界情況處理時間復雜度分析空間復雜度分析關鍵優化點實際應用場景測試用例設計…

微信小程序實現藍牙開啟自動播放BGM

下面是一個完整的微信小程序實現方案&#xff0c;當藍牙設備連接時自動播放背景音樂(BGM)。實現思路監聽藍牙設備連接狀態當檢測到藍牙設備連接時&#xff0c;自動播放音樂當藍牙斷開時&#xff0c;停止音樂播放處理相關權限和用戶交互完整代碼實現1. 項目結構text/pages/index…

XML 序列化與操作詳解筆記

一、XML 基礎概念XML&#xff08;eXtensible Markup Language&#xff0c;可擴展標記語言&#xff09;是一種用于存儲和傳輸數據的標記語言&#xff0c;由 W3C 制定&#xff0c;具有以下特點&#xff1a;可擴展性&#xff1a;允許自定義標記&#xff08;如<Student>、<…

第八十四章:實戰篇:圖 → 視頻:基于 AnimateDiff 的視頻合成鏈路——讓你的圖片“活”起來,瞬間擁有“電影感”!

AI圖生視頻前言&#xff1a;從“剎那永恒”到“動態大片”——AnimateDiff&#xff0c;讓圖片“活”起來&#xff01;第一章&#xff1a;痛點直擊——靜態圖像到視頻&#xff0c;不是“幻燈片”那么簡單&#xff01;第二章&#xff1a;探秘“時間魔法”&#xff1a;AnimateDiff…

2025深大計算機考研復試經驗貼(已上岸)

如果你在初試出分前看到此貼 我建議&#xff1a; 準備機試和簡歷&#xff0c;即使你不估分&#xff1a;因為如果要準備春招的話&#xff0c;也總要刷題和做簡歷的。盡早估分&#xff0c;查一下往年的復試線&#xff0c;如果有望進復試&#xff0c;可盡早開始準備。 Preface …

用Pygame開發桌面小游戲:從入門到發布

一、引言 Pygame是一個基于Python的跨平臺游戲開發庫,它提供了簡單易用的圖形、聲音和輸入處理功能,非常適合新手入門游戲開發。本文將以"經典游戲合集"項目為例,帶你一步步了解如何使用Pygame開發、打包和發布自己的桌面小游戲。 二、開發環境搭建 安裝Python:…

CSS backdrop-filter:給元素背景添加模糊與色調的高級濾鏡

在現代網頁設計中&#xff0c;半透明元素搭配背景模糊效果已成為流行趨勢 —— 從毛玻璃導航欄、模態框遮罩&#xff0c;到卡片懸停效果&#xff0c;這種設計能讓界面更具層次感和高級感。實現這一效果的核心 CSS 屬性&#xff0c;正是backdrop-filter。它能對元素背后的內容&a…