sql - 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
我想得到这种格式:
解决方案
这是使用culture参数获得所需输出的两种变体
German
SELECT FORMAT(19998.018,'# ##0.000', 'de-de')
Swedish
SELECT FORMAT(19998.018,'# ##0.000', 'sv-se')