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

如何在SQL Server中根据字段值截断或添加小数位?

如何用T-SQL实现按货币类型格式化金额显示?

我来帮你搞定这个需求!我们可以通过CASE条件分支搭配STR()函数来完成不同货币的金额格式化,完美匹配你对不同小数位数的要求。

完整实现代码

DECLARE @Currency TABLE (ccy CHAR(3), amount MONEY)
INSERT INTO @Currency VALUES ('USD',12.34), ('AUD',12.34), ('INR',12.34)

SELECT 
    ccy,
    CASE ccy
        WHEN 'USD' THEN STR(amount, 10, 0)  -- 截断小数,只保留整数部分
        WHEN 'AUD' THEN STR(amount, 10, 2)  -- 固定保留2位小数
        WHEN 'INR' THEN STR(amount, 10, 4)  -- 固定保留4位小数,自动补零
    END AS amount
FROM @Currency

代码说明

  • CASE语句:根据ccy字段的值,对不同货币执行对应的格式化逻辑
  • STR()函数:这个函数专门用于将数值转换为指定格式的字符串,参数含义是STR(要转换的数值, 字符串总长度, 小数位数)。这里总长度设为10是为了兼容大部分金额场景,你可以根据实际业务调整这个值
  • 对于USD,我们设置小数位数为0,STR()会直接截断小数部分(不是四舍五入,正好得到你要的12);AUD和INR分别设置2位和4位小数,不足的位数会自动补零,完全符合你的期望输出

执行结果

amount
12
12.34
12.3400

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:14:41