SQL-在不使用科学计数法编写的情况下返回字段中的所有浮点值

时间:2019-02-15 19:06:51

标签: sql sql-server significant-digits

我有一列的值集非常大(> 21k),小数位数不确定,并且存在一些示例数据(FLOAT):

6.46
0.784
8.05
86.4
2.64
0
2.14
1E-06
14.81
3.45
0.87243
0
1.12279
0
21.41
0.6243

我想返回所有显示的值,除了“ 1E-06”应该是.000001;此外,任何科学计数法都应采用纯十进制格式。

我试图编写某种CASE语句,其中在“ THEN”后跟“ CONVERT(varchar(100),CAST(@testFloat AS decimal(38, x )))””其中 x 是信号无花果的数量,但是我无法为WHEN语句获得正确的条件,这是我的最佳尝试:

CASE
    WHEN @testFloat = 0 THEN @testFloat
    WHEN FLOOR(@testFloat*10) != @testFloat*10 THEN CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))
    WHEN FLOOR(@testFloat*100) != @testFloat*100 THEN CONVERT(varchar(100), CAST(@testFloat AS decimal(38,3)))
    *etc*
END

很确定我没有走正确的路。...

1 个答案:

答案 0 :(得分:0)

Jeroen的评论很有帮助,并给了我表达方式,使我可以得到想要的结果:

URLSession(configuration: .default, delegate: enabler, delegateQueue: nil)

我认为我只需要将'308'降低到代表我们流程中所见最高精度水平的数字即可。谢谢Jeroen的解决方案!