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

如何在SQL Server中提取Tax字段内的EUR对应浮点金额

SQL Server提取Tax字段中EUR对应金额的实现方案

SQL Server可以通过以下两种方案实现和你Oracle查询相同的效果:

方案1:适用SQL Server 2017及更高版本(支持原生正则函数)

SQL Server 2017及以上版本内置了REGEXP_SUBSTR函数,参数规则和Oracle基本一致,直接替换表名即可使用:

SELECT REGEXP_SUBSTR(Tax, '\d+\W\d+', 1, 2) FROM 你的表名

如果希望匹配逻辑更稳定,避免后续字符串结构变化导致取错第N个匹配项,可以调整正则直接绑定EUR标识,只会命中EUR前的金额数值:

-- 正向预查匹配#EUR前的浮点数,无需指定匹配序号
SELECT REGEXP_SUBSTR(Tax, '\d+\.\d+(?=#EUR)', 1, 1) FROM 你的表名

方案2:适用低版本SQL Server(无原生正则支持)

通过原生字符串截取函数实现,逻辑为定位#EUR的位置后,向前查找最近的#分隔符,截取两者中间的金额内容:

SELECT 
    SUBSTRING(
        Tax,
        -- 找到金额前最近的#位置
        CHARINDEX('#', Tax, CHARINDEX('#EUR', Tax) - 10) + 1,
        -- 计算金额长度
        CHARINDEX('#EUR', Tax) - CHARINDEX('#', Tax, CHARINDEX('#EUR', Tax) - 10) - 1
    ) AS EUR_Amount
FROM 你的表名

以上两种方案均可返回你需要的21.36、7.21、5.17目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:06:05