首页 > 解决方案 > SQL Server:投钱和小数点后 2,3 或 4 位

问题描述

我编写了一个查询,显示给定列的小数位数和最大位数。它可以保留两位、三位或四位小数。

我想把这个数字当作钱,但小数位数不会被截断为两位。

select
    reverse(concat(replicate('0', case when @maxSpaces > 2 then @maxSpaces else 2 end - licznik), val)) value,
    replace(replace(convert(varchar, cast(reverse(concat(replicate('0', @maxSpaces - licznik), val)) as money), 1), ',', ' '), '.', ',') as value_money
from 
    @TABval

在此处输入图像描述

我想得到这种格式:

在此处输入图像描述

标签: sqlsql-server

解决方案


这是使用culture参数获得所需输出的两种变体

German

SELECT FORMAT(19998.018,'# ##0.000', 'de-de')

Swedish

SELECT FORMAT(19998.018,'# ##0.000', 'sv-se')

推荐阅读