You need to enable JavaScript to run this app. 如何从SQL查询返回的Version列中提取前两位数字
优惠活动
大模型
产品
解决方案
定价
更多

如何从SQL查询返回的Version列中提取前两位数字

解决方案

你之前调用LEN、SUBSTRING不生效的核心原因是SERVERPROPERTY函数的返回值类型为sql_variant,无法直接被字符串处理函数识别,必须先显式转换为字符串类型后再操作。
以下是两种适配不同需求的实现方式:

  • 如果你要提取的是SQL Server主版本号(例如版本16.0.4120.1对应的16),推荐使用PARSENAME函数,适配所有标准版本号格式:
SELECT 
    SERVERPROPERTY('ProductLevel') as SP_installed, 
    SERVERPROPERTY('ProductVersion') as Version,
    PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR(20)), 4) AS MajorVersion
  • 如果你确实需要固定截取版本字符串的前两位字符,使用显式类型转换后的SUBSTRING即可实现:
SELECT 
    SERVERPROPERTY('ProductLevel') as SP_installed, 
    SERVERPROPERTY('ProductVersion') as Version,
    SUBSTRING(CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR(20)), 1, 2) AS FirstTwoDigits

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:39:01