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

SQL Server中如何仅用FORMAT函数实现可选小数的数字格式化(逗号分隔)

如何仅用FORMAT函数实现特定数字格式化(SQL Server)

我在SQL Server中有一张临时表#FOLLOWUP,包含长度(FULENGTE)和体重(FUGEWICHT)字段,需要把其中的数据格式化为小数部分可选,存在小数时用逗号而非点作为分隔符的形式。

目前我只能通过REPLACE结合FORMAT函数实现,但感觉这种方法比较取巧。下面是我的测试代码:

CREATE TABLE #FOLLOWUP (
    [PATID] int,
    [FULENGTE] numeric(5,1),
    [FUGEWICHT] numeric(5,1)
);

insert into #FOLLOWUP (
    [PATID],
    [FULENGTE],
    [FUGEWICHT]
) values
(1001, 175, 78.5),
(1002, 171.5, 87),
(1003, 181, 75),
(1004, 172, 75),
(1005, 176.5, 90),
(1006, 167, 86),
(1007, 170, 66),
(1008, 181, 90);

select
    patid,
    fulengte,
    FORMAT(fulengte, '0.#') as test_1,
    FORMAT(fulengte, '0,#') as test_2,
    FORMAT(fulengte, '#,#') as test_3,
    FORMAT(fulengte, '#.#0,#') as test_4,
    replace(FORMAT(fulengte, '0.#'), '.', ',') as test_hack
from
    #FOLLOWUP

执行后得到如下结果:

patid  fulengte  test_1  test_2  test_3  test_4  test_hack
1001   175.0     175     175     175     175.00  175
1002   171.5     171.5   172     172     171.50  171,5
1003   181.0     181     181     181     181.00  181
1004   172.0     172     172     172     172.00  172
1005   176.5     176.5   177     177     176.50  176,5
1006   167.0     167     167     167     167.00  167
1007   170.0     170     170     170     170.00  170
1008   181.0     181     181     181     181.00  181

可以仅用FORMAT函数实现,关键是利用区域设置参数指定使用逗号作为小数分隔符,配合合适的格式字符串即可。

具体来说,使用FORMAT(fulengte, '0.#', 'de-DE')就能达到需求:德语区域(de-DE)默认以逗号作为小数分隔符,格式字符串0.#保证整数部分至少一位,小数部分可选且最多显示一位。

修改后的查询代码如下:

select
    patid,
    fulengte,
    FORMAT(fulengte, '0.#', 'de-DE') as test_format
from
    #FOLLOWUP

执行后会得到和test_hack列完全一致的结果:

patid  fulengte  test_format
1001   175.0     175
1002   171.5     171,5
1003   181.0     181
1004   172.0     172
1005   176.5     176,5
1006   167.0     167
1007   170.0     170
1008   181.0     181

原理说明

  • '0.#'格式字符串:0确保整数部分至少显示一位,#表示小数部分仅在存在时显示,且最多显示一位;
  • 第三个参数'de-DE'指定区域设置,该区域的小数分隔符为逗号,无需手动替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:25:01