You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SQL语句移除版本号结果末尾的多余小数点?

处理SQL版本字符串,移除末尾多余小数点

我明白你现在的困扰:从数据库提取带预发布标签的版本号后,当前SQL处理出来的结果末尾多了个小数点(比如2020.2.0.),没法直接转换成PowerShell的[version]对象做兼容性对比。

先说说为什么会出现这个问题:你的原SQL语句会截取版本号里所有数字和小数点的部分,直到遇到第一个非数字/小数点的字符(比如PR里的P)。但原版本2020.2.0.PR中,P前刚好有个小数点,所以截取结果就把这个末尾的小数点也包含进来了。

这里给你修改后的SQL语句,直接在原结果基础上去掉末尾的小数点:

DECLARE @databaseVersion NVARCHAR(30)
SET @databaseVersion = (SELECT version from dbo.server_log_entry where server_log_entry_id = (SELECT MAX(server_log_entry_id) from dbo.server_log_entry))
SELECT RTRIM(
    LEFT(
        SUBSTRING(@databaseVersion, PATINDEX('%[0-9.-]%', @databaseVersion), 8000),
        PATINDEX('%[^0-9.-]%', SUBSTRING(@databaseVersion, PATINDEX('%[0-9.-]%', @databaseVersion), 8000) + 'X') -1
    ),
    '.'
)

核心改动是在最外层加上了RTRIM(..., '.'):SQL Server的RTRIM函数支持第二个参数,专门用来移除字符串末尾指定的字符。这样不管处理后的字符串末尾有没有多余的小数点,都会被清理掉,最终得到干净的2020.2.0,可以直接转成PowerShell的[version]对象使用。

内容的提问来源于stack exchange,提问作者Oxyauna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:52:40