我需要数字'500.000100'的结果应为'500.0001'。将零截断为最后可用的数字。
如果小数点后没有可用值,则将值改为两位小数,例如返回500.000000到500.00
答案 0 :(得分:0)
使用format功能进行游戏。像这样......
declare @d as decimal(19, 6)
set @d = 50000.123456
select
(case
when @d / convert(int, @d) = 1. then format(@d, '#.00')
else format(@d, '#.####')
end) as FormatD
set @d = 500.000000
select
(case
when @d / convert(int, @d) = 1. then format(@d, '#.00')
else format(@d, '#.####')
end) as FormatD
答案 1 :(得分:0)
使用格式化功能。
DECLARE @test TABLE
(
val DECIMAL(18,9)
);
INSERT INTO @test (val) VALUES (0);
INSERT INTO @test (val) VALUES (1.1);
INSERT INTO @test (val) VALUES (2.32);
INSERT INTO @test (val) VALUES (33.501);
INSERT INTO @test (val) VALUES (444.0060100);
INSERT INTO @test (val) VALUES (5555.00600000100);
SELECT val, format(val, '0.00################') formatted
FROM @test;