圆形图

时间:2017-06-20 12:18:43

标签: sql sql-server database sql-server-2008

我需要数字'500.000100'的结果应为'500.0001'。将零截断为最后可用的数字。

如果小数点后没有可用值,则将值改为两位小数,例如返回500.000000到500.00

2 个答案:

答案 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;