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

SQL Server中如何将含逗号的SQL列格式化为正确的数字格式

SQL Server 数字格式转换解决方案

适用场景

需要将数字字符串末尾后接两位数字的逗号替换为小数点,其余位置逗号保留,符合以下转换规则:

Incorrect目标格式
123,452,03123,452.03
234.00234.00
456,02456.02

方案1:SQL Server 2017 及以上版本(支持正则函数)

直接使用内置的REGEXP_REPLACE函数实现,匹配逻辑为仅捕获字符串末尾、后接恰好两位数字的逗号进行替换:

SELECT 
    你的字段名,
    REGEXP_REPLACE(你的字段名, ',(\d{2})$', '.$1') AS 格式化后字段
FROM 你的表名

正则规则说明

  • ,(\d{2})$:$表示匹配字符串末尾位置,\d{2}表示匹配两位数字,括号将两位数字捕获为分组1
  • 替换逻辑为将匹配到的逗号替换为小数点,保留捕获到的两位数字

方案2:SQL Server 2016 及更低版本兼容方案

低版本不支持正则函数时,可使用原生字符串函数实现相同逻辑:

SELECT 
    你的字段名,
    CASE 
        WHEN LEN(你的字段名) >= 3 AND SUBSTRING(你的字段名, LEN(你的字段名)-2, 1) = ','
        THEN STUFF(你的字段名, LEN(你的字段名)-2, 1, '.')
        ELSE 你的字段名
    END AS 格式化后字段
FROM 你的表名

逻辑说明

  • 先判断字段长度是否≥3,且倒数第三个字符为逗号(即逗号后恰好有两位数字在字符串末尾)
  • 符合条件时用STUFF函数将该位置的逗号替换为小数点,不符合条件则返回原值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:54:03